Javascript:更简单的数字格式化方式?

时间:2009-04-07 14:50:26

标签: javascript jquery formatting

我正在尝试在页面上格式化各种数字。这些数字代表价格,价格变化或百分比。我知道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'格式化程序中有一个hack,我尝试在前面移动+/-符号'$'标志。

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

5 个答案:

答案 0 :(得分:16)

有NUMBERFORMATTER jQuery插件,详情如下:

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

从以上链接:

  

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

编辑:用更直接的链接替换链接。

答案 1 :(得分:4)

不,没有对数字格式的内置支持,但谷歌搜索将会显示大量代码片段,这些代码片段将为您执行此操作。

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

答案 2 :(得分:3)

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

答案 3 :(得分:1)

另请尝试具有内置本地化支持的dojo.number。它与Java的NumberFormat / DecimalFormat

更接近

答案 4 :(得分:0)

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

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

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