2012-02-26 17 views
0

私のコードでは、myCashという変数があり、これはh1要素にjavaScriptのinnerHTMLを使って表示されます。私は数字の最後から3番目の文字の後にコンマを入れて、数字を読みやすくする関数をオンラインで見つけました。私は数時間、変数myCashを関数に送り、それを画面に表示しようとしました。私はそれを働かせることはできません。3番目の数字の文字ごとにカンマを追加する

ページロード後またはボタンを押した後に新しい変数を画面に警告するだけで、何も表示されず、アラートが機能しなくなりました。ここでは、コンマ挿入機能があります:

var newMyCash = commaFormatted(myCash); alert(newMyCash);

と、この:

alert(commaFormatted(myCash);私は、変数を変更したいとき

function commaFormatted(amount) { 
    var delimiter = ","; // replace comma if desired 
    amount = new String(amount); 
    var a = amount.split('.',2) 
    var d = a[1]; 
    var i = parseInt(a[0]); 
    if(isNaN(i)) { return ''; } 
    var minus = ''; 
    if(i < 0) { minus = '-'; } 
    i = Math.abs(i); 
    var n = new String(i); 
    var a = []; 
    while(n.length > 3) 
    { 
     var nn = n.substr(n.length-3); 
     a.unshift(nn); 
     n = n.substr(0,n.length-3); 
    } 
    if(n.length > 0) { a.unshift(n); } 
    n = a.join(delimiter); 
    if(d.length < 1) { amount = n; } 
    else { amount = n + '.' + d; } 
    amount = minus + amount; 
    return amount; 
} 

は、今私はそれをこのなど、いくつかの異なる方法を試してみました

もちろん、myCashはいくつかの大きな数に等しい。

これは絶対に何もしません!私はここで間違って何をしていますか?

+0

jsFiddleに投稿できますか? – MyStream

+0

'myCash'変数とは何ですか?例えば4800.00または480000など? – shaunsantacruz

答えて

0

これは私の機能ではありませんが、あなたのお役に立てば幸いです。

function addCommas(nStr) 
{ 
    nStr += ''; 
    x = nStr.split('.'); 
    x1 = x[0]; 
    x2 = x.length > 1 ? '.' + x[1] : ''; 
    var rgx = /(\d+)(\d{3})/; 
    while (rgx.test(x1)) { 
     x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
    } 
    return x1 + x2; 
} 

使用法:

var newMyCash = addCommas(myCash); alert(newMyCash); 

出典:http://www.mredkj.com/javascript/nfbasic.html

+0

ありがとう!なぜ私の他の人が働いていないのか分かりません。 –

1

また、

、交換の低下としてこれを試してみて、応答を警告してみてください。

http://phpjs.org/functions/number_format:481

ブラウザのコンソール(通常はf12)にエラーが表示されますか?

+0

私はそれを取得しません。 –

0

ほとんどの場合、関数が期待する10進数を含む数値は渡されません。

作業中Demo

関連する問題