如何从浮点数获取整数值?

时间:2018-11-16 13:52:41

标签: java

如果我得到一个随机双精度数,如何只获得整数? 范例:

1)114.999-将“ 114”作为整数获取

2)565.343234-将“ 565”作为整数。

3 个答案:

答案 0 :(得分:1)

给出值:

float f = 114.999f;
int i = (int) f;

使用演员表将其转换为整数。

答案 1 :(得分:1)

最简单的方法是将double值转换为int。例如,

(int) 114.9999 == 114

但是,双精度型可以表示超出整数范围的数字。您可能需要检查double是否小于最小可能整数或大于最大可能整数,以免出现整数溢出问题。

答案 2 :(得分:1)

获取浮点数的整数部分的最简单方法是简单的强制转换:

double d = 14.999;
int i = (int)d; //14

如果您有像Double这样的原始包装器,则可以使用intValue()的所有子类都需要提供的方法Number。但是,由于这些是对象,因此引用可以为null,必须进行处理:

Double d = 14.999; //this makes use of auto-boxing
int i = d != null ? d.intValue() : 0; //here 0 is the default value if d is null

请注意,这将截断该值,由于精度问题,这可能导致意外结果,尤其是在涉及计算时。因此,当您期望15或更高的数值时,您可能会得到一个像14.999999999的数字。

另一个问题可能是,您不会获得负值的下一个较小的整数,而是下一个较高的整数,即-14.999将被截断为-14。

您应该牢记这一点,如果遇到这些问题,请查看类MathBigDecimal等提供的功能。