我想知道在给定9位小数的情况下,最大值会浮动溢出
答案 0 :(得分:0)
float 32767.998046875
有9位小数,上面没有浮点数需要9位小数。其后继者是32768.0,然后是32768.00390625。对于这些数字以及它们上面的所有浮点数,所有小数部分都是0.00390625
的倍数,并且需要8位小数或更少才能准确表示。
或者你的问题可能与其他事情有关。在16384和32768之间,一些浮点数有9个小数位,如32767.998046875
,但你不能选择你想要的数字(例如32767.998055555
不能表示为浮点数)。也许您正在考虑您选择的9个小数位,而不是格式的选择。在这种情况下,答案更简单:没有浮点数允许您选择9个任意有效十进制数字,并保证您将获得这些相同的数字。浮动格式只允许您返回6位十进制数字。
答案 1 :(得分:0)
8,388,608,用于IEEE-754 64位二进制浮点,通常称为double
。
对于低于此幅度的所有值,相邻可表示值之间的步长小于10 -9 ,因此每个可用小数点后的九位小数表示的数字可以与其他数字区分开。< / p>
超过这个幅度,步长太大。下一个较大的可表示值是8,388,608.00000000186264514923095703125,我们看到它接近8,388,608.000000002而不是8,388,608.000000001,因此我们没有任何浮点值可以区分8,388,608.000000001与8,388,608.000000002和8,388,608。
对于32位,最大值为.015625。因此,32位float
可能没用。