簡體   English   中英

將double轉換為int而不舍入java

[英]Convert double to int without rounding java

我想知道如何在 Java 中不四舍五入的情況下將 double 轉換為 int,例如 3,9 double 到 39 int,提前致謝!

我想您可以將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
    }
}

請注意,使用此解決方案時,當您的double值具有許多小數點時,您將始終遇到NumberFormatException

如果您的double值始終具有相同數量的小數點(例如 2),另一種解決方案是使用乘法:

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

一般來說是不可能的。 因為 double 可以有比 int 多得多的數字。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM