0

可能重复:
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>​
4

2 回答 2

1

这看起来像是一种使用 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/

于 2012-06-26T01:31:23.043 回答
0

只是一个评论:

> 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));
于 2012-06-26T03:00:24.803 回答