2016-06-27 7 views
0

私の入力番号を変換する際に問題が発生しました.1050000を挿入すると、1.050000の結果を与えるのではなく、1.000000になります。ParseFloatはラウンド変換を続けます。

parseFloat("1,050000").toFixed(6).toString() 
+1

なぜ「1.050000」になるのですか? 'coma'は'十進数 'ではありません – Rayon

+0

あなたのブラウザー/ OSでどの地域の設定を使用していますか – QBM5

+1

@ QBM5、 'parseFloat'は国際化の設定にかかわらず動作します。 –

答えて

2

であなたのカンマで区切られた番号を交換します。カンマを小数点の区切り記号として「認識」するようには設計されていません。

Infact、parseFloatは、+、 - 、数字、指数または小数点以外の文字列を検出すると、文字列の解析をすべて停止します。

この場合、入力は入力した文字が1であるとみなされます。 toFixed(6)は、小数点の後に6桁が得られるようにします。したがって、出力は1.000000です。

1

あなたの代わりに小数点ドットの、コンマを使用しているためです。代わりにこれを試してみてください:

parseFloat("1.050000").toFixed(6).toString()

+0

それは合理化の問題です、彼は完全に地域化された言語の多くで有効です – QBM5

+0

@ QBM5 - 合理化 - >国際化? – enhzflep

+0

@enhzflep - 私はそれらの2つの言葉を別々に見るように教わったことはなかったと思う。 – QBM5

0

試してparseFloatのデザインだ

var number = "1,050000"; 
var changedNumber = number.replace(/,/g, '.') 
alert(parseFloat(changedNumber).toFixed(6).toString()) 
+0

'var number =" 1,0500,00,5000 ";' – Rayon

関連する問題