有一些int浮点转换的情况,我发现原始值发生了变化。
例如:
int x = 49941310;
float y = (float) (x);
int z = (int) (y);
printf("%d, %f, %d",x,y,z);
Expecting: 49941310, 49941310.0000, 49941310...
Actual: 49941310, 49941312.0000, 49941312...
如果是18595769,我会得到18595768。
我也在c ++中尝试过static_cast,发生了同样的事情。 我知道23位存储尾数,9位存储符号和指数。我的问题是,如果我想退回原价怎么办?