1

这不是一个真正的大问题,但我很好奇,我想知道为什么在像“1.1 - 1”(1.1 作为 Single,1 作为 Integer)这样的操作之后,结果等于 0.09999 而不是 1( 1.1-1=0.1,自然)。

我用单个“1.0”替换了整数“1”,它工作正常。

谢谢,对不起我的英语。

一个。

4

1 回答 1

1

您需要知道数据是如何存储在内存中的,首先看一下整数,例如,int它们存储在内存中,每个不同的位配置意味着不同的数字,所以它很好,同样的情况是数字,不同的位配置意味着不同的数字,所以让我们看看类型的限制。比较,它们都是 32 位数字。限制是4294967296 个不同的值那么怎么样shortunsigned long longfloatintfloatint–2147483648 to 2147483647float

#define FLT_MAX 3.402823466e+38F /* max value */
#define FLT_MIN 1.175494351e-38F /* min positive value */

因此,如您所见,范围要宽得多,但不同值的数量相同,因此您无法获得如此好的精度,您也可以在此处此处float阅读有关标准 IEEE754的更多信息

于 2014-03-08T11:53:20.393 回答