2011-08-22 13 views
3

大きな数字をとり、カウントアップするスクリプトがあります。スクリプトは数字をコンマでフォーマットできるように文字列に変換しますが、最後の2桁の前に小数点以下の桁を追加する必要があります。私はこの行がコンマを処理することを知っています。文字列に小数点を追加する

if ((i+1) % 3 == 0 && (amount.length-1) !== i)output = ',' + output; 

小数点を追加するのに似た行がありますか?あなたは、常に最後の二つの前に小数点をしたい場合は

+0

あなたはその行が動作しますか?私に間違って見える... – Nayish

+0

@nayishはい、それは動作します。 – blackessej

答えて

2

はい、:

function numberIt(str) { 
    //number before the decimal point 
    num = str.substring(0,str.length-3); 
    //number after the decimal point 
    dec = str.substring(str.length-2,str.length-1) 
    //connect both parts while comma-ing the first half 
    output = commaFunc(num) + "." + dec; 

    return output; 
} 

commaFunc()あなたはそれを説明した関数であるカンマを追加します。

EDIT

多くのハードワークの後、完全な正しいコード:

http://jsfiddle.net/nayish/TT8BH/21/

+0

これは私の解決策のようです。私はあなたのスクリプトをここに私のコードにプラグインしました:http://jsfiddle.net/blackessej/TT8BH/12/そしてカンマを追加する関数の名前を変更しましたが、私はjavascriptでひどく良くはありません。 。すべてのポインタ? – blackessej

+0

実行時に出力されません...あなたの例の出力に関数を追加する方法はありますか? – blackessej

+0

理想的には、ちょうど最後の2桁の前に1桁の小数点を追加するコンマの区切り線の下に行を追加したいと思います。 – blackessej

-1

あなたは必ず小数点がちょうど最後の2桁の数字の前になりたいですか?そうすれ1234は、私はそのような場合、あなたが

私はformat_number関数を書いていないのJavaScriptの方法で構築された.toFixed()を使うべきで、2番目のものをしたいと仮定しています、12.34ない1234.00なります私は以下のウェブサイトからそれを取り出し、少し修正しました。

http://www.mredkj.com/javascript/nfbasic2.html

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

// example 1 
var num = 10; 
var output = num.toFixed(2); // output = 10.00 

// example 2, if you want commas aswell 
function format_number(nStr) 
{ 
    nStr = nStr.toFixed(2); 
    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 num = 1234; 
var output = format_number(num); // output = 1,234.00 
関連する問題