-2

为什么当我使用乘法时

float a= 1.0500000f;
float b= a*100.0f;

为什么 b 是 104.99999 而不是 105.0 ?

当我

int f= (int)b;

f 是 104

4

1 回答 1

1

浮点数并不是无限准确的——关于浮点数的维基百科页面读起来很有趣。

关于第二个问题:(int)b截断逗号后出现的任何内容。这意味着,在您的情况下,104.99999变为104. 因此,当您创建一个舍入错误,然后将其转换为整数时,您确实冒着获得较小数字的风险。

于 2014-04-10T13:33:08.680 回答