在java中使用精度获取小数点后的值

时间:2017-05-15 21:43:29

标签: java

让我说我有:

double x = 2.546;

我需要一个等于5的int,我该怎么做呢?

3 个答案:

答案 0 :(得分:9)

您需要乘以10,然后转换为int,然后应用%10操作

答案 1 :(得分:2)

从double中删除尾随小数的一种简单方法是将其强制转换为int。通过一些巧妙的演员,我们可以做到这一点:

double x = 2.546;
x-= (int)x;
x *= 10;
int y = (int) x;

我们从x中删除1的位置(2),从x为2.546减去(int)x,即2。然后我们将x乘以10得到5.46。然后通过将x转换为int,我们得到5.这将适用于许多其他语言。

答案 2 :(得分:2)

你能这样做吗?

int intVar = parseInt(x.toString().substring(indexOf('.')+1,1));

我实际上没有尝试过,所以你可能需要调整。但这就是想法。

基本思路是,转换为字符串,找到小数点,得到它后面的下一个字符,并将其转换为int。

您可能需要将其充实以处理异常。比如,如果没有小数点怎么办?