我試圖使用DecimalFormat
來格式化雙數,只打印2位小數的數字(如果它有小數部分),否則我想按原樣打印數字。當數字很小時,下面的代碼可以正常工作,但數字很大,但它不能按預期工作。使用DecimalFormat格式化大的雙數
DecimalFormat df = new DecimalFormat("#.##"); //have tried just # too
double d1 = 56789d;
System.out.println(df.format(d1)); //works fine - prints 56789
double d2 = 1234567879123456789d;
System.out.println(df.format(d2)); // does not work
第二輸出1234567879123456770
,而我想1234567879123456789
。對於帶小數部分的雙精度值,我只想保留兩位小數點。
有什麼問題的建議嗎?
我懷疑你是'double''s(im)precision的受害者... – fge