7

私は、制御できない、見ることのできない別のコードベースで作業しています。入力を送信すると、出力が返されます。このコードベースは、それが書かれているものも指定していませんが、数値を渡すだけでよく、出力された数値が返されるので問題ありません。予想される入力と出力が何であるかだけを知っています。

私が使用しなければならない入力の 1 つは、正確に小数点以下 6 桁の長さの入力を与える必要があります。私の数値のほとんどは小数点以下 6 桁をはるかに超えるので、四捨五入または切り捨てることができますが、四捨五入されたり、ランダムに や のような数値になっ0.125たり0.5すると、正しい数値を入力できません。

たとえば、 のような数値0.5がある場合、それは有効で正当な数値ですが、それを入力しようとしている関数はそれを受け入れず、正確に 6 桁までの数値ではないためエラーになり0.500000ます。"0.500000"また、文字列ではなく数値を探しているため、エラーになるため、文字列を入力することもできません。

数値の最後に余分なデッドゼロがある場合でも、ネイティブ JavaScript で数値の特定の精度を維持する方法はありますか?

例:

(1/2).toFixed(6) === "0.500000" // the toFixed() function returns a *String*, not a *Number*.

(1/2).toFixed(6) /1 === 0.5 // dividing by 1 coerces it to a Number, but drops the decimals back off the end.

Number( (1/2).toFixed(6) ) === 0.5 // Trying to convert it into a Number using the Number Constructor does the same as  the example above it.

*編集: 明確にするために、文字列ではなく、小数点以下 6 桁までの数値が必要です。

4

4 に答える 4

4

これを試して:

parseFloat(val.toFixed(6))
于 2019-05-03T13:38:45.663 に答える