js浮点数精度计算问题解决

在工作中遇到这种精度问题,例如:

大多数语言在处理浮点数的时候都会遇到精度问题,但是在JS里似乎特别严重,再来看一个例子

结果居然是592.800000000001,当然加法之类的也会有这个问题

那这是js的错误吗?

当然不是,你的电脑做着正确的二进制浮点运算,但问题是你输入的是十进制的数,电脑以二进制运算,这两者并不是总是转化那么好的,有时候会得到正确的结果,但有时候就不那么幸运了

你输入两个十进制数,转化为二进制运算过后再转化回来,在转化过程中自然会有损失了

但一般的损失往往在乘除运算中比较多,而JS在简单的加减法里也会出现这类问题,你也看到了,这个误差也是非常小的,但是却是不该出现的

1. 解决办法

1.1 扩大倍数法:有多少位小数就扩大10的n次方

1.2 四舍五入法:

2. js封装四则运算

极客教程

分享编程知识

关注,每天推送好内容!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180326G1MR9M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券