我使用下面的行来转换浮点数为int,但它不是像我想要的那样准确:
float a=8.61f;
int b;
b=(int)a;
结果是:8(它应该是9)
当a = -7.65f时,结果是:-7(它应该是-8)
最好的方法是什么?
我使用下面的行来转换浮点数为int,但它不是像我想要的那样准确:
float a=8.61f;
int b;
b=(int)a;
结果是:8(它应该是9)
当a = -7.65f时,结果是:-7(它应该是-8)
最好的方法是什么?
当前回答
数学。Round还返回一个整数值,因此不需要类型转换。
int b = Math.round(float a);
其他回答
使用Math.round(value),然后在类型转换后将其转换为整数。
float a = 8.61f;
int b = (int)Math.round(a);
Math.round()就足够了
int b = Math.round(a)
这样就可以了
使用Math.round()将浮点数舍入为最接近的整数。
对我来说,更简单:(int) (a +.5) // a是浮点数。返回四舍五入的值。
不依赖于Java Math.round()类型
如果您想将浮点值转换为整数值,有几种方法可以实现,这取决于您想如何四舍五入浮点值。
第一种方法是浮点值的舍入:
float myFloat = 3.14f;
int myInteger = (int)myFloat;
这段代码的输出将是3,即使myFloat值更接近4。
第二种方法是浮点值的四舍五入:
float myFloat = 3.14f;
int myInteger = Math.ceil(myFloat);
这段代码的输出将是4,因为舍入模式总是在寻找最大值。