将float转换为int似乎会导致值的变化

时间:2015-12-22 00:59:52

标签: c floating-point int

假设我有3.3号码,我想得到小数部分。我所做的是(我将代码分开,尽可能地每行做一件事):

float _x = 3.3;
float _j = _x - floor(_x);
printf("1. %f\n", _j);
_j *= 10;
printf("2. %f\n", _j);
int z = (int) _j;
printf("3. %d\n", z);

我得到以下输出:

1. 0.300000
2. 3.000000
3. 2

_jint的投射导致数字等于2的情况发生了什么?

0 个答案:

没有答案