那么,问题来了,你会javascript(js)的小数点乘法除法问题吗?

发布时间:2020-04-28 03:50:40 作者:沙漏半杯
来源:网络 阅读:478

用js计算

12.32 * 7   结果是多少?


答案:86.24000000000001


为什么会出现这种问题?怎么解决?


js在处理小数的乘除法的时候有一个bug,解决的方法可以是:将小数变为整数来处理。


以上的计算可以改为:

12.32 * 100 * 7 /100

得出的结果是:86.24,正确。


另外再计算一下:

8.80 * 100 * 12 / 100

结果:105.60000000000002

38.80也会出现类似的问题。


精确度增加10倍:

8.80 * 1000 * 12 / 1000

结果:105.6

正常了。


16.40 * 1000000 * 6 / 1000000

结果也有问题


为了让js执行的更准确,在以后的js小数计算中直接将值扩大10000倍,再除以10000,就可以解决问题。

var num = 38.80;

var num2 = 13;

alert(num * 10000 * 12 / 10000);


被乘和除的这个数经过测试10000最合适,小了有些数字出问题,大了(1000000)有些数字也出问题。 

欢迎工作一到五年的Java工程师朋友们加入Java技术交流群:659270626
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!


推荐阅读:
  1. javascript的运算精准度问题
  2. javascript数字计算丢失精度怎么解决

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java javascript 乘除法

上一篇:windows 下装逼工具   一切都是为了更好的工作

下一篇: At least one of monitoring servers is not reachable from this script

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》