将double的小数部分转换为整数?在JAVA

时间:2015-04-28 18:48:02

标签: java casting int double decimal

我希望我的整数如下:

双号= 9.7361;

我希望我的整体有这个:7361。

另一个例子:

double number2 = 0.43;

我希望我的整数有这个:43。

在Java中。

3 个答案:

答案 0 :(得分:2)

你的问题有一个答案,只要你限制你可以去的双倍小数部分的距离。对于稍微修改过的问题,请考虑以下函数:

public static int fracPartAsInt(double d, int digits){
    return (int)((d - ((int)d)) * Math.pow(10, digits));
}

首先,我们分离双倍的小数部分:

(d - ((int)d)

然后乘以digits

提供10^digits位数
(d - ((int)d)) * Math.pow(10, digits)

最后,我们通过截断为int来放弃其余的。

答案 1 :(得分:0)

你的问题非常模糊至少解释你想要通过这样做实现的目标如果它始终为三位小数你可以做到这一点。

double d=9.7681;
int a =d%1000;

答案 2 :(得分:0)

这个想法是分离积分和小数部分并将它们分别转换为字符串。以下是详细步骤。

1)从浮点提取整数部分。

2)首先将整数部分转换为字符串。

3)从n。

中抽取整数部分提取部分

4)如果d不为零,则执行以下操作。

... .a)通过将它与pow(10,d)相乘来将分数部分转换为整数

... .b)将整数值转换为字符串并追加到结果中。