Javascript:格式化数字的更简单方法? [关闭]

Posted

技术标签:

【中文标题】Javascript:格式化数字的更简单方法? [关闭]【英文标题】:Javascript: Easier way to format numbers? [closed] 【发布时间】:2009-04-07 14:50:26 【问题描述】:

我正在尝试格式化页面上的各种数字。这些数字代表价格、价格变化或百分比。我知道 javascript 具有限制小数位数的功能,但是是否支持其他类型的格式,例如用逗号对数字进行分组,控制是否显示 +/- 等?到目前为止,这是我所拥有的:

var FORMATTER = 
    price       : function(value)  return '$' + value.toFixed(2); ,
    pricePer    : function(value)  return (value * 100).toFixed(2) + '%'; ,
    priceChg    : function(value)  return (value >= 0 ? '+' : '-') + '$' + Math.abs(value).toFixed(2); 
;

它工作正常,但它想在“price”格式化程序中添加逗号,您可以看到“priceChg”格式化程序中有一个黑客,我尝试将 +/- 符号移到'$' 符号。

基本上,我希望有一些库可以模拟 Java 的 DecimalFormat 类。

【问题讨论】:

developer.mozilla.org/en/docs/Web/JavaScript/Reference/… 【参考方案1】:

这里有 NUMBERFORMATTER jQuery 插件,详情如下:

https://code.google.com/p/jquery-numberformatter/

从上面的链接:

这个插件是一个 NumberFormatter 插入。数字格式可能 与任何合作过的人都熟悉 服务器端代码,如 Java 或 php 和 谁合作过 国际化。

编辑:将链接替换为更直接的链接。

【讨论】:

你应该链接到plugins.jquery.com/project/numberformatter。 你说得对,谢谢。完成。 酷,这正是我想要的。 这个插件被弃用了吗? 链接因 jQuery 插件站点消失而失效。这是位于code.google.com/p/jquery-numberformatter 的同一个插件吗【参考方案2】:

不,没有对数字格式的内置支持,但谷歌搜索会显示大量代码 sn-ps 将为您完成此操作。

编辑:我错过了你帖子的最后一句话。尝试 http://code.google.com/p/jquery-utils/wiki/StringFormat 获取 jQuery 解决方案。

【讨论】:

他不是要求内置支持,而是要求一个库。 帖子说“我知道 Javascript 具有限制小数位数的功能,但是否支持其他类型的格式”。读起来像是他在询问内置支持,如果你不像我一样阅读整篇文章:)【参考方案3】:

刚刚完成了一个用于格式化数字 Numeral.js 的 js 库。它处理小数、美元、百分比甚至时间格式。

【讨论】:

感谢 adamwdraper!我需要一个不涉及 jQuery 的解决方案。【参考方案4】:

也可以试试dojo.number,它具有内置的本地化支持。它更接近于 Java 的 NumberFormat/DecimalFormat

【讨论】:

【参考方案5】:

如果有人感兴趣,这里是 YUI 版本:

http://developer.yahoo.com/yui/docs/YAHOO.util.Number.html

var str = YAHOO.util.Number.format(12345,  thousandsSeparator: ','  );

【讨论】:

以上是关于Javascript:格式化数字的更简单方法? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

对三个数字进行排序的更简单方法

打字稿和 javascript 混合项目的更漂亮的自动格式化错误

javascript判断input框只能输入数字的方法

在javascript中用逗号格式化数字变量的最佳方法是啥

在向量中查找连续数字的更有效方法?

在 Django 中,如果存在的话,根据视图名称动态加载一些 JavaScript 的更聪明的方法是啥?