0

重複の可能性:
JavaScript: 小数点以下 2 桁で数値をフォーマットする

誰かが私のJavaスクリプトを手伝ってくれませんか?
私の Java スクリプトは一貫してカウントアップします。問題は、セント文字の長さが長すぎることです (最大 2 文字が必要です)。もう1つの問題は、適切な量を決定するためにカンマを正しい位置に配置する必要がある追加のコードがわからないことです。例: 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, ",");
}

数値をパラメーターとして関数に渡すだけで、カンマ区切りの数値が返されます。

小数点以下 2 桁に丸めるために使用できる別の関数を次に示します。

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 のバージョン) を 1 つだけ指定していますが、それはそうではありません。ただし、使用中のすべてのブラウザーがその形式をサポートしているわけではありません。

指定されていて、どこでも機能することがわかっているものを使用することをお勧めします。たとえば、次のようになります。

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 に答える