我正在尝试在页面上格式化各种数字。这些数字代表价格,价格变化或百分比。我知道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类。
答案 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: ',' } );