为什么当我使用乘法时
float a= 1.0500000f;
float b= a*100.0f;
为什么 b 是 104.99999 而不是 105.0 ?
当我
int f= (int)b;
f 是 104
为什么当我使用乘法时
float a= 1.0500000f;
float b= a*100.0f;
为什么 b 是 104.99999 而不是 105.0 ?
当我
int f= (int)b;
f 是 104
浮点数并不是无限准确的——关于浮点数的维基百科页面读起来很有趣。
关于第二个问题:(int)b
截断逗号后出现的任何内容。这意味着,在您的情况下,104.99999
变为104
. 因此,当您创建一个舍入错误,然后将其转换为整数时,您确实冒着获得较小数字的风险。