You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两个精确表示整数的IEEE 754双精度浮点数相乘结果是否总能精确表示?

IEEE 754双精度整数相乘的精度问题解答

结论:不是总能精确表示。

IEEE 754标准的double类型使用53位有效尾数(包含1位隐藏的最高位),这意味着它能精确表示的整数范围是-2^53到2^53之间的所有整数(2^53的值为9007199254740992)。

当两个能被double精确表示的整数相乘时:

  • 如果乘积的绝对值≤2^53,结果可以被double精确表示,和任意精度整数相乘的结果完全一致;
  • 如果乘积的绝对值>2^53,此时乘积的有效位数超过了53位,double类型无法存储完整的有效信息,会进行舍入处理,最终得到的结果和任意精度整数相乘的正确结果存在偏差。

举两个实际例子:

  • 2^27(即134217728)可被double精确表示,两个2^27相乘得到2^54(18014398509481984),这个数超出了2^53的范围,double无法精确存储它;
  • 整数3002399751580331和3都能被double精确表示,但它们的乘积是9007199254740993——刚好比2^53大1,double无法精确存储这个数,会被舍入为9007199254740992。

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:04:52