本文翻译自:How to convert float to int with Java
I used the following line to convert float to int, but it's not as accurate as I'd like: 我使用以下行将float转换为int,但它并不像我想的那样准确:
float a=8.61f;
int b;
b=(int)a;
The result is : 8 (It should be 9 ) 结果是: 8 (应该是9 )
When a = -7.65f , the result is : -7 (It should be -8 ) 当a = -7.65f ,结果是: -7 (应该是-8 )
What's the best way to do it ? 最好的方法是什么?
#1楼
参考:https://stackoom.com/question/5Qzw/如何使用Java将float转换为int
#2楼
使用Math.round()将float浮动到最接近的整数。
#3楼
Math.round(value) round the value to the nearest whole number. Math.round(value)将值四舍五入到最接近的整数。
Use 使用
1) b=(int)(Math.round(a));
2) a=Math.round(a);
b=(int)a;
#4楼
Use Math.round(value) then after type cast it to integer. 使用Math.round(value)然后在类型转换为整数后。
float a = 8.61f;
int b = (int)Math.round(a);
#5楼
Math.round还返回一个整数值,因此您不需要进行类型转换。
int b = Math.round(float a);
#6楼
As to me, easier: (int) (a +.5) // a is a Float. 至于我,更容易: (int)(a +.5) // a是浮点数。 Return rounded value. 返回舍入值。
Not dependent on Java Math.round() types 不依赖于Java Math.round()类型
本文探讨了在Java中将float类型精确转换为int类型的最佳方法。通过使用Math.round()函数,可以避免传统类型转换导致的精度损失,确保转换后的整数更接近原始浮点数的实际值。
587

被折叠的 条评论
为什么被折叠?



