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 转换为字符串时会产生科学计数法 -1.2E-4
。我想以非科学计数法存储字符串值。
我希望 BigDecimal 总是具有两个单位的精度,如“47.48”。BigDecimal 可以限制转换为字符串时的精度吗?