为什么单个变量给出0.09999而不是0.1?

时间:2013-10-25 20:15:35

标签: vb.net operation

这不是一个很大的问题,但我很好奇,我想知道为什么,在“1.1 - 1”(1.1为单,1为整数)之类的操作之后,结果等于0.09999并且不是1(1.1-1 = 0.1,自然)。

我已将整数“1”替换为单个“1.0”并且它正常工作。

谢谢,对不起我的英语。

一个。

1 个答案:

答案 0 :(得分:1)

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

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

因此,当你看到范围要宽得多,但不同数值的数量是相同的,所以你不能有这么好的精确度,你也可以阅读更多关于float标准IEEE754 here或{{ 3}}