字符串化已经四舍五入的浮点数,然后将其转换回数字会产生进一步的精度误差吗?



由于浮点错误,我知道 0.1+0.2 的结果是 0.3000000000000000004 而不是 0.3。但是,如果我从alert(0.1+0.2(复制"0.300000000000000004"并写入Number("0.300000000000000004"(,它是否仍然等于0.1 + 0.2?

或一般:

let a=float_number_1 + float_number2;
let b=Number((float_number_1 + float_number2).toString());

a 总是完全等于 b 吗?

Java 将数字默认转换为字符串是为了产生足够的数字来唯一地将数字与相邻的可表示值区分开来。换句话说,它被特意设计成产生一个字符串,该字符串可以转换回数字以产生原始值。

因此,如果您从float转换为字符串再到float或从double转换为字符串再到double,您将获得原始数字。如果将double转换为字符串,再转换为float,则可能会得到不同的数字。

最新更新