在 Java 中,我想取一个 double 值并将其转换为 aBigDecimal
并将其 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
转换的原因是有时双精度值将包含很多小数位(即-.000012
),当将双精度值转换为字符串时会产生科学记数法-1.2E-4
。我想以非科学记数法存储字符串值。
我想让 BigDecimal 总是有两个这样的精度单位:“47.48”。BigDecimal 可以限制转换为字符串的精度吗?