将double转换为int而不舍入Java

时间:2018-11-09 08:01:33

标签: java

我想知道如何将double转换为int而不用在Java中四舍五入,例如3,9 double转换为39 int,在此先感谢!

2 个答案:

答案 0 :(得分:1)

我想您可以将double转换为String,删除.,然后尝试将其解析为int

通过执行以下操作:

public static void main(String[] args) {
    double input = 2.12345;
    String stringInput = String.valueOf(input);
    String withoutDot = stringInput.replace(".", "");

    try {
        int number = Integer.parseInt(withoutDot);
    }
    catch (NumberFormatException e) {
        // Handle this exception gracefully
    }
}

请注意,使用此解决方案,当NumberFormatException的值必须有许多小数点时,您将总是拥有double

如果您的double值始终具有相同的小数点数量(例如2),则另一种解决方案是使用乘法:

public static void main(String[] args) {
    double input = 2.12;
    Double rounded = 2.12 * 100;
    int number = rounded.intValue();
}

答案 1 :(得分:0)

通常这是不可能的。 因为double可以比int多得多的位数。

    double d = 3.111111111111111111111111111111;
    System.out.println(Integer.MAX_VALUE);