最近在改一个bug 关于不定个数的n个利率相加后再算钱和收益的业务
这里遇到了一个坑 就是当我们想把接过来的利率利用js的parseFloat去处理的时候,我们是好心,当然也是必须,希望得到精确的数据,然后问题就在这 2个浮点数据 例如7.2和3.1 这里会触发这个现象的情况是 我们触发了10进制 当进行10进制的时候 浮点精度丢失就表现出来了
结果为
那我们如何处理这样的问题呢
当然原因是因为10进制和2进制的关系导致的
这篇文章说的很好 大家可以去阅读以下 在这就说解决
就是把小数变成整数后进行相加减乘除后,再除以之前乘的倍数 从而恢复到原来的小数就可以了
我这里由于利率是不固定的个数 所以简单了写了一个方法
这样我传的参数是个list 就可以不去考虑参数的个数了 后面的Math.abs 是取绝对值 有无均可
然后再调用的时候声明list 然后进行push就可以了 *100是因为我们传入的利率最多也就2位小数
然后就ok了