使用 javascript 格式化数字

Formatting numbers with javascript

本文关键字:数字 格式化 javascript 使用      更新时间:2023-09-26

可能的重复项:
JavaScript:用正好两位小数格式化数字

有人可以帮我使用java脚本吗?
我的 java 脚本一直在计数,问题是美分字符长度太长(最多需要 2 个字符)。另一个问题是,我不知道还需要什么代码将逗号放在正确的位置以确定适当的数量。示例:12345.67 与 12,345.67。如果有人可以看看代码,修改它并重新发布完整的代码,因为我不知道该怎么做,我将不胜感激。

这是javascript代码:http://jsfiddle.net/pqsH6/


<p style="float:left;">Money Saved: </p><b><p id="ds"  style="float:left;">$</p></b>
<div id="counter" style="float:left;"></div>
<script type="text/javascript">
    var START_DATE = new Date("january 1, 2012 12:00:00"); // put in the starting date here   
    var INTERVAL = 1000; // savings per second
    var INCREMENT = 0.005; // money saved per second
    var START_VALUE = -50000; // configures proper savings calculation
    var count = 0;
    window.onload = function()
    {
        var msInterval = INTERVAL * 1;
        var now = new Date();
        count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE;
        document.getElementById('counter').innerHTML = count;
        setInterval("count += INCREMENT; document.getElementById('counter').innerHTML = count;", msInterval);
    }
</script>​

这看起来像是一种使用 Javascript 用逗号格式化输出的方法:

如何在 JavaScript 中打印带有逗号的数字作为千位分隔符

function numberWithCommas(x) {
    return x.toString().replace(/'B(?=('d{3})+(?!'d))/g, ",");
}

只需将您的数字作为参数通过函数传递,它就会返回一个逗号分隔的数字。

下面是另一个可用于四舍五入到小数点后两位的函数:

function formatCurrency(num) {
    num = isNaN(num) || num === '' || num === null ? 0.00 : num;
    return parseFloat(num).toFixed(2);
}

然后像这样使用函数

var roundedCurrencyAmt = numberWithCommas(formatCurrency(amtOfMoney));

这是一个工作jsFiddle:http://jsfiddle.net/alexfromapex/Y2x8m/2/

只是一个评论:

> var START_DATE = new Date("january 1, 2012 12:00:00");

依赖于正确分析字符串的内置 Date 函数,但 ECMA-262 仅指定 Date 应分析的一种格式(ISO8601 版本),而事实并非如此。但并非所有使用的浏览器都支持这种格式。

最好使用指定且已知在任何地方都有效的东西,例如:

var START_DATE = new Date(2012,0,1,12);

这将在所有浏览器中以本地时区创建一个新日期 2012-01-01 12:00:00,或者如果需要 UTC,则

var START_DATE = new Date(Date.UTC(2012,0,1,12));