el-input值精度丢失问题:el-inpu值*100单位转换出现许多位小数

这期需求是有一个搜索功能来的,页面拿的数据单位是m,服务端接收的要cm,本来是很简单来的*100发到服务端,结果被测试同学测出了下面的鬼畜BUG:

 

众所周知:js中0.1+0.2!==0.3的,因为js使用的双精度浮点,所以在计算机内部存储数据的编码会出现误差;

 

这期需求的话是允许用户输入两位小数,项目中有用到自定义指令限制只能输入两位;排错的时候发现只有输入的小数后两位大于5的时候会出现上边的鬼畜BUG,例如(15.99)之类的,(15.33)就不会有这种问题.....,急着上线就用Math.round(value * 100)解决了问题.

再记录一下一个保留两位小数的方法:

fomatFloat(src) {
      return Math.round(src * Math.pow(10, 2)) / Math.pow(10, 2);
    }

上边的数字2是位数,可以提出来再封装,需要保留几位小数传几.

简单记一下,接着修BUG.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值