我格式化的十進制數,我有以下標準進行格式化:格式化十進制數
- 數量應該是最多兩位小數(10.1234 => 10.12)
- 如果有小數點後只有一個數字那麼它將最終用一個額外的0(10.5 => 10.50)
- 千分離器將是逗號(12345.2345 => 12,345.23)
我已經寫了下面的邏輯:
double x = Double.parseDouble(value.toString());
String dec = x % 1 == 0 ? new java.text.DecimalFormat("###,###.##").format(x) : new java.text.DecimalFormat("###,###.00").format(x);
現在是打印:
11111111111110.567=>11,111,111,111,110.57
111111111111110.567=>111,111,111,111,110.56
1111111111111110.567=>1,111,111,111,111,110.60
11111111111111110.567=>11,111,111,111,111,110
111111111111111110.567=>111,111,111,111,111,104
1111111111111111110.567=>1,111,111,111,111,111,170
我不明白爲什麼行爲的變化。我應該怎樣打印1111111111111111110.567
作爲1,111,111,111,111,111,110.57
?