BigDecimal
Java では、double 値を取得して a に変換し、その String 値を特定の精度で出力し たいと考えています。
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
double d=-.00012;
System.out.println(d+""); //This prints -1.2E-4
double c=47.48000;
BigDecimal b = new BigDecimal(c);
System.out.println(b.toString());
//This prints 47.47999999999999687361196265555918216705322265625
}
}
この巨大なものを出力します:
47.47999999999999687361196265555918216705322265625
そしてそうではない
47.48
私がBigDecimal
変換を行っている理由は、double 値に多くの小数点以下の桁数 (つまり-.000012
) が含まれる場合があり、double を String に変換すると科学的表記法が生成されるため-1.2E-4
です。文字列値を非科学的な表記で保存したい。
BigDecimal には、「47.48」のように常に 2 つの精度単位を持たせたいと考えています。BigDecimal は文字列への変換時に精度を制限できますか?