這裏有一段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?謝謝!
這裏有一段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?謝謝!
NumberFormat formatter = new DecimalFormat("#0.00");
double decimal = 0.60;
System.out.println(formatter.format(decimal));
你不能,你試圖這樣做。 A double
只存儲一個數字,它不存儲編號寫入的精度。您可以更改輸出的格式(例如System.out.printf("%.2f", value)
,或者您可以將值存儲在不同的數據類型中(例如,BigDecimal
,確實可以區分這種差別),但雙倍值0.6
和雙倍值0.60
之間沒有差別。
也可格式化使用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
嘗試'的System.out.println(的String.format( 「%.2f」,十進制));' – silentprogrammer 2015-04-01 17:09:44
謝謝@singhakash,這工作完美!你能簡單解釋一下'String.format'的作用嗎? – BjC 2015-04-01 17:17:47
請參閱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