Microsoft Excel 正在改变单元格值

Microsoft Excel 正在改变单元格值

电子表格中的三个单元格被故意更改了它们的值(本质上是四舍五入)。例如,一个单元格原本应该显示 9969001500006276,却被转换为 9969001500006270,后来当我重新打开 excel 时,我发现这个数字是 9969001500006280。

我尝试过增加小数位数、更改数字格式和扩大单元格大小。
我甚至尝试过完全删除该列并重新创建它。
我还尝试过在 Google Sheets 和 SoftMaker FreeOffice 中进行编辑,(猜猜怎么着)我得到了相同的结果。

该问题仅在三个单元上重复出现,其他单元似乎运行良好。 (我对电子表格完全是业余爱好者。而且,我使用 Office 2016。)

答案1

回答:
银行帐号只是一种“标识”,而不是数学公式中会用到的东西。输入这些帐号时,请以数字开头',Excel 不会随时更改它们。(这相当于无条件的“文本”格式)

背景信息:
正如@Scott Craner 所说,对于数字来说,有一个16数字精度限制 - 由于计算机中使用数字的方式(即64位浮点格式,也称为“双精度”)
要突破该限制,必须使用特殊技巧和实用程序 - 如果它确实是一个数字,则可用于计算。

Linux 命令行计算器bc就是这样一个实用程序,例如Python有几种方法来处理高精度数字。

参考:https://en.wikipedia.org/wiki/Double-precision_floating-point_format
“在 2^52=4,503,599,627,370,496 和 2^53=9,007,199,254,740,992 之间,可表示的数字恰好是整数。对于下一个范围,从 2^53 到 2^54,所有数字都乘以 2,因此可表示的数字是偶数,等等。相反,对于前一个范围从 25^1 到 2^52,间距为 0.5,等等。”

深入解释:
https://docs.python.org/3/tutorial/floatingpoint.html

答案2

这种行为是可以预料到的。这是由于此类数字在电子表格中的存储方式所致。每个单元格都是一些数据和元数据的容器。例如,当您存储日期时,有时您会将其视为数字,而43475当未应用任何格式时,您将要求使用短日期格式,它将显示为10/01/2019。因此,为了适应每个电子表格中的这些单元格,必须做出妥协才能容纳上述数据和元数据。

然后关于这个数字,我已经在这个答案数字存储在浮点数变量中,您可以阅读更多关于这里,就像除法和科学计数法一样。它会生成数字串,然后将小数点放在适当的位置。因此,由于对最后几位数字进行了四舍五入,所以最后几位数字不是那么精确。

相关内容