将float舍入为int

时间:2017-07-30 20:21:00

标签: c rounding

自学编码(这里是noob),练习题的答案如下:

amount = (int) round (c);

c是浮点数。 可以说这行通过舍入将float转换为整数吗? 我尝试研究将浮点数转换为整数的方法,但没有使用上面的语法。

3 个答案:

答案 0 :(得分:2)

您应该查看round的返回值 如果它返回一个浮点数,那么你的int投射将不会失去精度,并将浮动转换为int。 如果它返回int,则转换发生在函数中,并且无需再次尝试转换它。

这当然是你真的希望绕过这个数字。如果您希望10.8成为11,那么您的代码是一种可能的解决方案,但如果您希望它成为10,那么只需将其转换(转换)为int }。

答案 1 :(得分:1)

float具有比整数原始值更高的范围,这意味着float大于int。由于这个事实,您可以通过向下转换它将float转换为int

int value = (int) 9.99f; // Will return 9

请注意,这种类型转换将截断小数点后的所有内容,它不会对该值执行任何舍入或平面操作。 如上所示,如果浮点数为9.999,则(向下)转换为整数将返回9。但是如果你需要舍入,那么使用Math.round()方法,它通过在它的值上加上+0.5然后截断它来将float转换为它最接近的整数。

Java tutorial , primitive datatypes

Java language specifications, casting of primitive types

答案 2 :(得分:0)

我会做amount = int(c)

这是一个完整的例子

amount = 10.3495829
amount = int(amount)
print(amount)

它应该打印10!