値を四捨五入しています。以下を参照してください。parseFloatで切り捨てた後に適切な値が得られません
console.log(parseFloat(parseFloat(0.670).toFixed(3))));
これは0.67になりますが、期待されるのは0.670です。そして私はなぜこれが..これがフロートに変換されているのか分かります。
問題は私がフロートに変換する必要があります、私は適切なものを手に入れてください。
値を四捨五入しています。以下を参照してください。parseFloatで切り捨てた後に適切な値が得られません
console.log(parseFloat(parseFloat(0.670).toFixed(3))));
これは0.67になりますが、期待されるのは0.670です。そして私はなぜこれが..これがフロートに変換されているのか分かります。
問題は私がフロートに変換する必要があります、私は適切なものを手に入れてください。
var a = parseFloat(parseFloat(0.6699).toFixed(3)) + "<br>";
document.getElementById("demo").innerHTML = a;
<p id="demo"></p>
私は私が正しく質問を読まないと思います。
function toPrecision(num, length = 0) {
const numArr = num.toString().split('')
const index = numArr.indexOf('.')
const decimal = index > -1 ? index + 1 : 0
return Number(numArr.slice(0, decimal + length).join(''))
}
console.log(
toPrecision(0.6699, 0),
toPrecision(0.6699, 1),
toPrecision(0.6699, 2),
toPrecision(0.6699, 3),
toPrecision(10006688.669966, 4)
)
var num = 0.670;
フロート変数は、その有効桁数を覚えてすることは不可能であるvar num = 0.67;
と完全に同じです。あなたはその精度を手動で追跡しなければなりません。
計算後に数字を文字列として表示しても問題ありません。 console.log(num.toFixed(3));
>0.670
私はファイアフォックスで '0.670'を取得していますか? –
私はクロームで0.670を得ていますか? –
0.67と0.670は同じ数字ではありませんか?あなたが望むのは、3小数点以下の出力をフォーマットすることです。 – Vi100