2015-04-23 45 views
-2

我寫了這個代碼:小數點的Java

double sums = Math.round(sum) * 100.00/100.00; 

我小數點(例如10.0),但我想10.00後我只得到一個0

有什麼問題嗎?

+0

@Kayaman不是重複的... – assylias

回答

1

我懷疑你打算

double sums = Math.round(sum * 100)/100.0; 

這將數四捨五入至小數點後2位。

我只在小數點後面有一個0(例如10.0),但我想要10.00。

該號碼10.0 == 10.00除格式之外沒有差別。您可以格式化字符串並同時舍入它。

double sum = 9.999; 
String fmt = String.format("%.2f", sum); 
// fmt = "10.00" 

一個數字只是一個numebr,它沒有固有的格式。

0

使用String.format,以確保你得到它只是你想

位的數量,例如,如果我寫

public static void main(String[] args) { 
     double sum=23.90; 
     double sums = Math.round(sum * 100)/100.0; 

     System.out.println(sums); 

    } 

它會給我輸出 高達小數點後一位數 即23.9

但如果我將相同的代碼更改爲

public static void main(String[] args) { 
     double sum=23.945; 
     double sums = Math.round(sum * 100)/100.0; 
     System.out.println(sums); 
    } 

我得到輸出至兩個小數點即 23.95

但隨着字符串格式,你將永遠相信您一定會多少小數打印

public static void main(String[] args) { 
     double sum=23.945; 
     double sums = Math.round(sum * 100)/100.0; 
     String fmt = String.format("%.1f", sums); 
     System.out.println(fmt); 
    } 

輸出24.0 .. 但它有得到了圓整的問題 所以更好的做法是先使用首先將其轉換爲字符串,然後修剪字符