RMB类 为什么我的程序第一个加法的结果总是比理论值相差0.01呢

img


问题遇到的现象和发生背景

img


重载的加号

img

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

数据格式问题,运算是先把int型转成double型,结果出来后再将double转成int试试

我记得之前在学习的时候遇到过这种情况,大概是因为浮点类型存储的值是不精确的,精度再高也不精确,例如2可能浮点数的表示方法就是1.99999。
这种问题的解决方式是,不使用浮点数参与计算,其实很简单,我们在计算过程中都默认了已“元”为单位,实际上我遇见的和钱相关的计算都是以厘为单位,不适用浮点数的。

这里你可以以分为单位,1分就是1,一角就是10,一元就是100,应该就不会有精度的问题了。仅供参考

temp.yuan = x
这两值一样了,互减不就没了
temp.jiao = x * 10 - temp.yuan * 10 = (x - temp.yuan)* 10
这不归零了

类型转换问题,用范围值宽的double类型试一下

应该是你理论值算错了