这种方式的前提是需要确切的知道小数的位数, 但是好在精度高, 在运算的时候不会造成误差. 比较适合保存金额等....但是之后只是对同一个数字做了一次加减, 就导致发生其精度丢失了. 其原因同样是因为在计算中对指数部分统一导致的....为了验证我的猜想, 只要将计算顺序修改, 当 s 变量还没有小数部分, 不至于丢失精度的时候进行大数的运算:
a = 1.0
b = 0.12345678
c = 0.11111111
s = 0.0...这时, 计算结果印证了之前的讨论. 如此说来, 小数在两个相差很多的数字之间进行运算的时候, 也容易导致丢失精度....同时, 因为浮点数能表示的范围比整数要大, 在转整数的时候, 也可能会造成丢失.
----
最终搞懂了这个看似奇怪的现象, 唉, 基础还是不够啊.