-2

我想知道考虑到小数点后 9 位的要求,最大值会浮动​​溢出

4

2 回答 2

0

8,388,608,用于 IEEE-754 64 位二进制浮点,通常称为double.

对于低于这个数量级的所有值,相邻可表示值之间的步长小于 10 -9,因此可以将每个可以用小数点后九位数字表示的数字与其他数字区分开来。

超过这个量级,步长就太大了。下一个较大的代表值是8,388.000000000000186264514923095703125,我们看到的接近8,388,608.0000002

对于 32 位,最大值为 0.015625。所以32位float可能没用。

于 2013-08-16T00:24:12.687 回答
0

浮点数32767.998046875有 9 个小数位,上面没有浮点数需要 9 个小数位来表示。它的继任者是 32768.0,然后是 32768.00390625。对于这些数字和它们上面的所有浮点数,所有小数部分都是整数的倍数,0.00390625并且需要 8 位或更少的小数位才能准确表示。

或者,也许您的问题是关于其他的。在 16384 和 32768 之间,一些浮点数有 9 个小数位,例如32767.998046875,但您不能选择所需的数字(例如32767.998055555不能表示为浮点数)。也许您正在考虑您选择的小数点后 9 位,而不是格式的选择。在这种情况下,答案更简单:没有浮点数允许您选择 9 个任意有效的十进制数字并保证您将获得这些相同的数字。浮点格式只允许您取回 6 个十进制数字。

于 2013-08-15T20:26:57.343 回答