2015-04-01 86 views
-2

這裏有一段Java代碼:顯示Java double值

import java.util.*; 

public class javaTests 
{ 
    public static void main(String[] args) 
    { 
     double decimal = 0.60; 

     System.out.println(decimal); 
    } 
} 

我想打印0.60,但是編譯器打印0.6。我怎樣才能打印0.60?謝謝!

+1

嘗試'的System.out.println(的String.format( 「%.2f」,十進制));' – silentprogrammer 2015-04-01 17:09:44

+0

謝謝@singhakash,這工作完美!你能簡單解釋一下'String.format'的作用嗎? – BjC 2015-04-01 17:17:47

+0

請參閱java格式器類http://docs.oracle.com/javase/7/docs/api/index.html?java/util/Formatter.html %[flags] [width] [。precision]轉換。 「用於填充,2指定浮點數和f的位數 – Chandru 2015-04-01 17:25:18

回答

1
NumberFormat formatter = new DecimalFormat("#0.00"); 
double decimal = 0.60; 
System.out.println(formatter.format(decimal)); 
0

你不能,你試圖這樣做。 A double只存儲一個數字,它不存儲編號寫入的精度。您可以更改輸出的格式(例如System.out.printf("%.2f", value),或者您可以將值存儲在不同的數據類型中(例如,BigDecimal,確實可以區分這種差別),但雙倍值0.6和雙倍值0.60之間沒有差別。

0

也可格式化使用String類。

System.out.println(String.format("%1.2f",.60)); 

格式的方法需要多個參數,第一個參數總是格式字符串,它使用以下語法。

%[argument_index$][flags][width][.precision]conversion 

請參閱Java文檔查看詳細信息,格式化

http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax