【问题标题】:Javascript: Easier way to format numbers? [closed]Javascript:格式化数字的更简单方法? [关闭]
【发布时间】:2024-03-09 08:30:01
【问题描述】:

我正在尝试格式化页面上的各种数字。这些数字代表价格、价格变化或百分比。我知道 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 类。

【问题讨论】:

标签: javascript jquery formatting


【解决方案1】:

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

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

从上面的链接:

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

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

【讨论】:

【解决方案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: ',' } );
    

    【讨论】:

      最近更新 更多