java保留數問題(#.00問題)
網上精彩答案很多了,隻寫自己做題用到的吧
簡便一點的:String.format
自己做題常用的:DecimalFormat
public void fun() {
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));
}
- 問題就在這裡
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(0.35));
他奶奶的輸出:.35 o(▼皿▼メ;)o
但是這樣就可以了
DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(0.35));
新學的NumberFormat
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
/**
* setMaximumFractionDigits(int newValue)
設定數的小數部分所允許的最大位數。
*/
- 問題一:4搞完:4 不是4.00,也就是小數為0不保留
- 一二行,也就是定義和使用不能分開!我試了試,即使static靜态也白搭
新學一個巧辦法Math.round()
Double dou = 3000.533
dou = (double)Math.round(dou*100)/100
- 其中dou是變量,Math.round()方法,可保留兩位小數就是先乘以100再除以100.同理保留N位小數同理。
- Math.round()方法://傳回最接近它的整數(或long),若有兩個傳回接近的整數,則取最大的那個。