2017-07-30 80 views
0

自(这里小白)学习编码,回答实践问题如下:四舍五入浮动为int

amount = (int) round (c);

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

+0

多德学习Java中铸造基本类型。这是非常基本的。请在堆栈溢出发布这些类型的问题之前浏览。 – Popeye

+0

目前我只做到'C',但会考虑到Java上的那些。谢谢。 – COBB87

+0

@ COBB87你应该提及你正在编写代码的语言 –

回答

1

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

这当然是,如果你真的想要整数。如果你想10.8成为11,那么你的代码是一个可能的解决方案,但是如果你想要它变成10,那么只需将它转换(转换)为int即可。

+0

将32位'float'转换为32位'int' _does_对于大于约2 ** 23的许多值丢失精度。 – chux

0

我只想做amount = int(c)

下面是一个完整的例子

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

它应该打印10!

1

float具有比整数原始值更高的范围,这意味着float大于int。由于这一事实,你可以只是一个浮动转换为int下浇铸

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

只要注意,这个类型转换会截断小数点后的一切,也不会执行任何舍入或地板操作价值。 正如你从上面的例子看到的,如果你的浮点数是9.999,(下)转换为整数将返回9。但是,如果需要四舍五入,则使用Math.round()方法,该方法通过将float的值加上+0.5并将其截断,将float转换为最接近的整数。

Java tutorial , primitive datatypes

Java language specifications, casting of primitive types

+0

嗯..问题被标记为'C' – bolov