网站浮动咨询代码,pedl中文模组网站,网店html模板,网站怎么做下载连接分析原因 众所周知#xff0c;在JavaScript中计算两个十进制数的和#xff0c;有时候会出现令人惊讶的结果#xff0c;主要原因是计算机将数据存储为二进制所引起的#xff0c;所以这并不是javascript存在的缺陷#xff0c;而在其他语言中也有类似的问题。 例如下面的例子…分析原因 众所周知在JavaScript中计算两个十进制数的和有时候会出现令人惊讶的结果主要原因是计算机将数据存储为二进制所引起的所以这并不是javascript存在的缺陷而在其他语言中也有类似的问题。 例如下面的例子 我们在计算 0.1 0.1 的到的结果是 0.2但是计算 0.1 0.2 的结果并不是0.3而是0.30000000000000004 我们在计算 1.2 - 1 的结果并不是0.2而是0.19999999999999996 不过这并不是JavaScript独有的其他编程语言也会存在同样的问题。
解决办法我们可以使用toPrecision凑整后再使用parentFloat比如计算1.6385000000000001
let parse parseFloat(1.6385000000000001.toPrecision(12))
console.log(parse 1.6385) // true接下来我们封装成方法使用
/**param: 浮点小数precise: 转换后有几位数
*/
function precision(num, precise) {return parseFloat(num.toPrecision(precise));
}precision(1.6385000000000001, 1) // 2
precision(1.6385000000000001, 2) // 1.6
precision(1.6385000000000001, 3) // 1.64其原理就相当一数学中的四舍五入。