我正在计算一个值。见下文..
的console.log(parseFloat(parseFloat(0.670).toFixed(3)));
我为此得到0.67,但根据数学规则,预计一个是0.670。而且我知道为什么这是......这是因为我将它转换为浮动。
问题是我必须将它转换为浮动,请帮助我找到合适的。
答案 0 :(得分:1)
var num = 0.670;
完全等于var num = 0.67;
浮点变量不可能记住其有效数字。您必须手动跟踪其精度。
计算完成后将数字显示为字符串没有任何害处。 console.log(num.toFixed(3));
> 0.670
答案 1 :(得分:1)
console.log(parseFloat(0.670).toFixed(3));
答案 2 :(得分:0)
我认为我没有正确地阅读这个问题。
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)
)
答案 3 :(得分:-1)
var a = parseFloat(parseFloat(0.6699).toFixed(3)) + "<br>";
document.getElementById("demo").innerHTML = a;
<p id="demo"></p>