为什么我在excel表格里输入“=0.18-0.17”结果并不是0.01呢? - 爱问答

(爱问答)

为什么我在excel表格里输入“=0.18-0.17”结果并不是0.01呢?

结果栏增加小数位后是0.00999999999999998。我感到特别奇怪,请高人解释一下。0.21-0.2也会出现这种结果。

你说的对,是这样的况,但是,这不奇怪 ,这是浮点计算引起的误差。

为什么我在excel表格里输入“=0.18-0.17”结果并不是0.01呢?

由于excel是采取二进制存储数字的(在excel中浮点数分为三个部分,总长度为 65 位:符号、指数和尾数)。而某些十进制的有穷非循环数在二进制下是无穷的循环数,比如0.1。虽然这些数字在以 10 为底的况下可以完美地表示,但相同数字在二进制格式下,在尾数中存储时就变成了以下二进制循环数字:

000110011001100110011(等类似数字)

excel在储存这些数字时,它在尾数中只存储能够容纳的部分,并截断其余部分。这导致在存储数字时产生大约 -2.8E-17 或 0.000000000000000028 的误差。

这个道理就象在十进制下无法准确地表示1/3一样,只能用循环小数 0.33333333333333333333来近似表示。

遇到这种情况怎么办?

遇到这种情况,有三种解决方案:

方案一:在公式中加round来四舍五入。

方案二:设置单元格格式。但是只能确定小数位数,不能四舍五入。

方案三:使用“将精度设为所显示的精度”选项。但是此选项要谨慎使用,会影响本工作簿所有的数值。


相关标签:excel

下一篇:win10系统更新失败

上一篇:为什么我打开一个图片以后桌面图片全部变成了快捷方式

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?