「Java入門」java.math.BigDecimalで精度を指定した計算を行うサンプル

Javaコード
import java.math.BigDecimal;
import java.text.DecimalFormat;

public class DecimalDemo {

public static void main(String[] args) {
String cft = mathNumFun(“23.1234155", 2, 6).toString();
System.out.println(“BigDecimalで精度を指定した計算結果:"+cft);

}
public static BigDecimal mathNumFun(String number, int min, int max) {
DecimalFormat df = new DecimalFormat(getMaxSu(max));
String num = df.format(Double.parseDouble(number));
BigDecimal nb = new BigDecimal(num);
String cft = nb.toString();
cft = cft.replaceAll(“^(0+)", “");
cft = cft.replaceAll(“(0+)$", “");
int idx = cft.indexOf(“.");
int len = cft.substring(idx + 1).length();
if (len < min) {
if (len == 0 && idx == 0) {
nb = new BigDecimal(“0.00");
} else {
nb = new BigDecimal(cft).setScale(2);
}
} else {
nb = new BigDecimal(cft).setScale(len);
}
return nb;
}

public static String getMaxSu(int max) {
String cft = “0.";
for (int i = 0; i < max; i++) {
cft += “0";
}
return cft;
}

}

BigDecimalで精度を指定した計算結果:23.123416

Java

Posted by arkgame