自学编码(这里是noob),练习题的答案如下:
amount = (int) round (c);
c
是浮点数。
可以说这行通过舍入将float转换为整数吗?
我尝试研究将浮点数转换为整数的方法,但没有使用上面的语法。
答案 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转换为它最接近的整数。
答案 2 :(得分:0)
我会做amount = int(c)
这是一个完整的例子
amount = 10.3495829
amount = int(amount)
print(amount)
它应该打印10!