兩個整數相除求%比,保留兩位小數

double 是雙精度類型,也就是說你的d是double,而你的d*100中的100是整形(int)。這是自動類型轉換
符合以下條件時java將會做自動類型轉換:
(1)轉換前的數據類型與轉換後的類型兼容。
(2)轉換後的數據類型的表示範圍比轉換前的類型大。
其中double的表示範圍比int大,符合條件(2)。因此java會自動將原來爲int的類型的變量100轉換爲double類型

private static double volicate(int a,int b) {

DecimalFormat df = new DecimalFormat("0.0000");
String fgl = df.format((double)a/b);
DecimalFormat sf_s = new DecimalFormat("00.00");
double dou = Double.valueOf(sf_s.format(Double.valueOf(fgl)*100));
return dou;

}


=====================================================================================

測試類:

package com.jiuqi;


import java.text.DecimalFormat;


public class Test2 {
public static void main(String[] args) {
// int a =  56,b=118;
// DecimalFormat df = new DecimalFormat("0.0000");
// String fgl = df.format((double)a/b);
// DecimalFormat sf_s = new DecimalFormat("00.00");
// System.out.println(Double.valueOf(sf_s.format(Double.valueOf(fgl)*100)));
for(int i = 1; i<100;i++){
for(int num = 0; num<100;num++){
System.out.println(volicate(num,i));
}
}
}

// private static void volicate(int a,int b) {
// DecimalFormat df = new DecimalFormat("0.0000");
// String fgl = df.format((double)a/b);
// DecimalFormat sf_s = new DecimalFormat("00.00");
// System.out.println(Double.valueOf(fgl)*100);
// System.out.println(Double.valueOf(sf_s.format(Double.valueOf(fgl)*100)));
// }
//

private static double volicate(int a,int b) {
DecimalFormat df = new DecimalFormat("0.0000");
String fgl = df.format((double)a/b);
DecimalFormat sf_s = new DecimalFormat("00.00");
double dou = Double.valueOf(sf_s.format(Double.valueOf(fgl)*100));
return dou;
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章