parseFloat()后两个数相减导致出现意外数值

原创 Laughing  2017-08-30 16:29  阅读 382 次 评论 0 条
数值计算不要放在前端!数值计算不要放在前端!数值计算不要放在前端!重要的事情说三遍。

任何系统都离不开一些计算在里面,但是我们在使用js的计算时,往往会出现一些意想不到的问题,比如我们计算两个浮点数的差额,我们在前端可能会通过如下代码进行

  1. $(function () {  
  2.     $("#btn").click(function () {  
  3.         var value1 = parseFloat($("#txt1").val()).toFixed(2);  
  4.         var value2 = parseFloat($("#txt2").val()).toFixed(2);  
  5.         var value3 = parseFloat(value1) - parseFloat(value2);  
  6.         $("#txt3").val(value3);  
  7.     });  
  8. });  

上面的代码很简单,我们期望的值肯定是3.7,但是实际我们得到的值却是3.6999999999999997

解决方法

其实解决方法很简单,我们只需要通过toFix()方法,将精度进行格式化就可以了。

但是如果我们有多次计算的话,这样还是可能会导致精度问题,所以设计金额等数值计算的方法还是放到后台进行吧。

本文地址:https://www.lisen.me/parsefloat-subtraction-unexpected-values.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情