js浮点数计算(加,减)

文章介绍了在JavaScript中遇到浮点数计算精度问题时,如何通过将数字转化为字符串避免直接的浮点运算,以解决精度丢失的策略。作者提出了一个思路,涉及加减法操作,包括获取最长小数位数、移除小数点、补零、转换回数字进行计算,最后重新格式化结果。测试结果显示这种方法有效,作者已将相关代码上传至GitHub,欢迎大家使用和反馈。
摘要由CSDN通过智能技术生成

最近工作中经常遇到需要处理浮点型计算的问题,开始一直都在用把浮点数先乘以10的对应小数的位数的次方化成整数再去开始计算。

例如100.01+100.02,可以化成(100.01*100+100.02*100)/100来做计算,但是最近发一个浮点数乘以一个10的次方也会有精度问题发生(如:575697.82*100),突然感觉前面的工作是不是有好多地方埋了很多坑啊,不能愉快的工作啦。

正好周未没什么别的计划,想研究下怎么处理JS的浮点型计算的精度问题

既然浮点数的计算精度有问题,那何不就在计算过程中绕过浮点型的计算了,于是有如下思路


 

这里是加减法的思路:

可以把数字强行转化成字符串,再取得二个值中小数位数长的那一个长度值,再用字符串的方法把二个字符串中的点号给替换掉,再把位数不够的那一个字符在未尾补零后再把二个字符串转化成数字再进行计算,再把计算的值转换成字符串补上小数点,再转换成数字输出,即绕过了浮点的加减法运算

代码如下:

 

//浮点数加减法
    function sumfloat(num0,num1,bzstr){
        var ln0=getPoi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值