我一直在想,並且發現很多方法從格式化到字符串時從雙打中刪除.0,但從未找到如何保留價格的東西。如何在浮點後保持零從零開始
DecimalFormat format = new DecimalFormat();
format.setDecimalSeparatorAlwaysShown(false);
switch (position){
case 0:price = 11.90;break;
case 1:price = 1.2;break;
case 2:price = 1.002;break;
case 3:price = 1.0000;break;
}
System.out.println(format.format(price));
// 11.9
// or 1.2
// or 1.002
// or 1
,但我需要的是womthing這樣
// 11.90
// 1.2
// or 1.002
// or 1
這不是重複的,因爲人會增加00到我不想...... 我只想找任何代價如果在它後面有零,則移除浮點,但如果存在一個數字則保留任何零。
例如
1.0, 1.00 or 1.00000
should print out 1
但
1.90, 1.900 or 1.90000
should print out the same 1.90, 1900 or 1.900000
你真的[不應該使用'貨幣double'(http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency)。 – azurefrog
您可能必須在指定價格的同時指定格式,無論是在交換機...情況下。因爲您指定的打印格式中沒有真正的圖案。或者把它們打印成字符串,而不是雙打。 – AntonH
@AntonH我正在尋找的模式是刪除浮點數「」。「只有當它不存在,所以任何數字與x.0,x.00或x.0000000將x,但x.20將x.20 –