【发布时间】:2010-05-08 21:08:54
【问题描述】:
浮点数无法表示某些 int 值。
但是,double 能否表示 float 可以表示的所有值?
我的直觉说是的,因为 double 有更多的小数位和更多的指数位,但我可能会遗漏一些愚蠢的陷阱。
【问题讨论】:
-
浮点数无法达到的 int 值有哪些?我以前从未听说过。
-
随着浮点数变大,可表示值之间的间隔变长。您不能真正将 10000000001 表示为浮点数,即使浮点数可以容纳更大的值。
-
补充 cHao 所说的,一个 IEEE 浮点数最多只能携带 23/24 位,因为某些位是为符号和指数保留的。
-
第一句话在具有 16 位整数的平台上不正确
标签: c floating-point int double