程序计算是一个很普遍的存在,但是语言的计算精度却是一个困扰人的问题,比说说,计算0.1+0.2,0.3+0.6,不用计算机计算,你用口算当然可以计算出分别为0.3和0.9,但是计算机计算的结果却不一样
这是加法中存在问题,乘法当中依然存在,你可以用程序计算一下4330.61*100,计算结果依然是不准确。
当着写计算结果应用到金钱的计算上的时候,就会出现大的问题,N笔交易以后产生的效果更大。所以需要一种方法来解决。至于产生的原因可以参考=>js浮点数精度问题的前世今生?
浮点数计算本身就有精度缺失的问题,要解决他首先就不进行浮点数运算,就是将其转变为整数,然后再进行除法,换算为浮点数。
首先,将两个需要运算的数字进行字符串化,然后依次判断小数点后有几位,因为后面需要进行除法,所以这里的小数点位数需要相加,然后将字符串化后的两个值去除小数点,在进行数字化,此时两个数字都已经变成了整数,此时在进行乘法运算,得出精确的结果,之后再除以因为去除小数点放大的倍数,由此得出精确地计算结果。