Excel中如何精确计算超长数字乘法 避免科学计数与精度丢失
问题原因
Excel 原生数值采用 IEEE 754 双精度浮点数规则,最多仅能保留15位有效数字,超过长度的整数会被自动截断、转为科学计数法,无法直接存储、计算超长整数的精确值。
可落地的精确计算方法
- 方法1:用Excel内置Power Query计算(无需额外装软件)
- 打开空白Excel,点击顶部「数据」选项卡,依次选择「获取数据」-「自其他来源」-「空白查询」
- 在Power Query编辑器的公式栏输入
= 1929868153955269923726183083478131797547292737984581739710086052358636024904 * 60,Power Query原生支持任意长度大整数运算,不会出现精度丢失 - 回车即可得到精确结果,右键结果选择「复制」-「粘贴为值」,就能拿到完整的整数结果,不会被自动转成科学计数法。
- 方法2:用系统自带命令行工具快速计算
- Windows用户:打开PowerShell,输入命令
[bigint]::Parse("1929868153955269923726183083478131797547292737984581739710086052358636024904") * 60,回车直接输出精确结果 - Mac/Linux用户:打开终端,输入命令
echo $((1929868153955269923726183083478131797547292737984581739710086052358636024904 * 60)),回车即可得到结果,系统shell原生支持大整数精确运算,无精度损失。
- Windows用户:打开PowerShell,输入命令
- 注意:提前把单元格设为文本格式再粘贴长数字的方法,仅适合存储身份证号、订单号这类不需要做数值计算的长串,文本格式下的超长数字做乘法运算时依然会被截断,无法得到精确结果。
本次计算的精确结果
115792089237316195423570985008687907852837564279074904382605163141518161494240
内容的提问来源于stack exchange,提问作者crypto saver
相关产品推荐
相关产品推荐

