dus*_*uff 10

123.3443不能用浮点数精确表示 - 在32位浮点数中,它实际上表示为16166984 / 131072,实际上是123.34429931640625,而不是123.3443.(大概是6.8 x 10 ^ -7.)

如果这真的是您想要的结果(可能不是这样),请看看IEEE-754如何工作,并拉出您最喜欢的任意精度数学套件.一旦你明白这是怎么回事"幕后",产生一个精确的表示应该不会辛苦.生成"足够接近"的圆形表示实际上要困难得多.:)


jue*_*n d 2

int i = (int) (f * 10000 + 0.5);
Run Code Online (Sandbox Code Playgroud)

  • 并不是真正有帮助的答案(尽管提问者会得到他所要求的内容)。这(非常)可能不是他想要的。 (2认同)