在一些算数运算中,为什么对于两个很大的数相减,浮点数损失的精度会更多呢?
1条回答 默认 最新
- dceacho 2022-10-07 20:02关注
如果不想了解浮点的编码规则的话可以这样理解
32位数可以表示0到0xffffffff即0到4,294,967,295, 就是说它能表示出4,294,967,296个数字
浮点数,假设不编码,保留三位小数,32位也只能表示0到4294967.295, 再大一点的浮点数或者小数位再多一点的浮点数就没法表示出来
整数相加减只要不溢出是不存在精度损失的,浮点数因为有些数字无法表示出来,所以有损失。
如果你侧重问更多的精度损失,那是因为浮点数的整数部分位数有限,数字大了的话会丢弃尾数,数字越大丢弃的尾数越多
例如123456789.1234567
忘记整数位数了,假设因为限制只能有6个十进制整数,那么会记成123456X10E3,尾数丢了不少,789.1234567全没了本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用