兩個int型的數相除,結果保留小數點後兩位,利用Math.round()的方法。round這個方法是將數進行"四捨五入"。
例如:
int a=4567;
int b=117; //4567/117=39.034188
double c;
c=(double)(Math.round(a/b)/10.0); //這樣可以將結果轉換為小數點後只有兩位的形式
結果是 c=3.9
round方法對39.034188進行了四捨五入,通過/10.0將原結果縮小10倍並轉換成只有一位的小數。
另外一種方法如下:
double f = 111231.5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
結果是:111231.55
我採用了第一種方法,將原來count方法改成了countf方法,這樣計算結果可保留一位小數。程式碼如下:
1 public float countf(String a, String b, String e) { 2 float temp1 = Float.parseFloat(a); 3 float temp2 = Float.parseFloat(b); 4 5 if ("+".equals(e)) { 6 return (float)(Math.round((temp1+temp2)*10.0)/10.0); 7 } else if ("-".equals(e)) { 8 return (float)(Math.round((temp1-temp2)*10.0)/10.0); 9 } else if("*".equals(e)) { 10 return (float)(Math.round(temp1*temp2*10.0)/10.0); 11 } else if(temp2==0){ 12 return chushu = 0;//除數為零的標誌 13 } else 14 { 15 return (float)(Math.round(temp1/temp2*10.0)/10.0); 16 } 17 }
執行結果: