web-dev-qa-db-ja.com

JavaScript文字列変数を10進数/お金に変換します

JavaScript文字列変数を10進数に変換するにはどうすればよいですか?

などの機能はありますか

parseInt(document.getElementById(amtid4).innerHTML)
109
Varada

はい- parseFloat

parseFloat(document.getElementById(amtid4).innerHTML);

formatting数値には、 toFixed を使用します。

var num = parseFloat(document.getElementById(amtid4).innerHTML).toFixed(2);

numは、小数点以下2桁でフォーマットされた数値の文字列になりました。

227
lonesomeday

Numberコンストラクター/関数を使用することもできます(基数は不要で、整数と浮動小数点の両方に使用できます)。

Number('09'); /=> 9
Number('09.0987'); /=> 9.0987
62
KooiInc

これは動作します:

var num = parseFloat(document.getElementById(amtid4).innerHTML, 10).toFixed(2);
10
Sanjay
var formatter = new Intl.NumberFormat("ru", {
  style: "currency",
  currency: "GBP"
});

alert( formatter.format(1234.5) ); // 1 234,5 £

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat

6
zloctb

Javascript関数を使用して数値を比較および再生することは、かなり危険です。 javascript(0.1 + 0.2 == 0.3)では、丸めエラーのためfalseを返します。 math.jsライブラリを使用します。

2
Sibo Donald

簡単な簡単な方法は、+ xを使用することです。10進数と同様に符号をそのまま保持します。他の選択肢は、parseFloat(x)を使用することです。 parseFloat(x)と+ xの違いは、空の文字列の場合です+ xは0を返しますが、parseFloat(x)はNaNを返します。

1
Tushar Sagar

私はこれを行い、すべての不正なデータをキャッチするための小さなヘルパー関数を作成しました

function convertToPounds(str) { 
    var n = Number.parseFloat(str);
    if(!str || isNaN(n) || n < 0) return 0;
    return n.toFixed(2);
}

デモは こちら

0
sidonaldson