我有以下虚拟测试脚本:
function test() {
var x = 0.1 * 0.2;
document.write(x);
}
test();
这将打印结果,0.020000000000000004
而仅打印结果0.02
(如果使用计算器)。据我了解,这是由于浮点乘法精度的错误。
有没有人有一个好的解决方案,这样在这种情况下我可以获得正确的结果0.02
?我知道还有类似的函数,toFixed
或者四舍五入是另一种可能性,但是我真的想在不进行任何四舍五入的情况下打印出完整的数字。只想知道你们中的一个人是否有一些不错的,优雅的解决方案。
当然,否则我将四舍五入到大约10位数字。
同时添加两个浮点值时,它永远不会给出精确的值,因此我们需要将此值固定为一定的数字,这将有助于我们进行比较。
console.log((parseFloat(0.1)+ parseFloat(0.2))。toFixed(1)== parseFloat(0.3).toFixed(1));