代码之家  ›  专栏  ›  技术社区  ›  Tim Frey

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

  •  17
  • Tim Frey  · 技术社区  · 16 年前

    我正试图在我的页面上格式化各种数字。这些数字代表价格、价格变化或百分比。我知道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”格式化程序有一个漏洞,我试图将+/-符号移动到“$”符号前面。

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

    5 回复  |  直到 16 年前
        1
  •  16
  •   FireLeopard karim79    11 年前

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

    此插件是一个数字格式化工具 熟悉任何与之共事过的人 与谁合作过 国际化。

        2
  •  4
  •   ithcy    16 年前

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

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

        3
  •  3
  •   adamwdraper    13 年前
        4
  •  1
  •   peller    16 年前

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

        5
  •  0
  •   Mike Christensen    14 年前

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

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

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