获取带比例的大十进制值

Get bigdecimal value with scale

我有一个字符串,其值为 7。我需要将此值转换为等效的大十进制 7.000000。我尝试了 BigDecimal(String val)BigDecimal(BigInteger val, MathContext mc) BigDecimal 的构造函数,但它们都没有用 return 7。我怎样才能得到7.000000

我想你是在谈论如何将其转换为 String

BigDecimal的构造函数会产生一个BigDecimal代表你给它的值,代表数字7的BigDecimal和代表数字7的BigDecimal没有区别表示数字 7.00000,就像数字 7 和数字 7.00000 之间有区别一样。

当你打印出来时,它需要被转换成一个String,这听起来好像在那个时候你希望能够指定小数位数。为此,您需要使用 DecimalFormat class:

new DecimalFormat("#0.000000").format(bigdec);

您可以使用 DecimalFormat 格式化输出。但是,无法在 BigDecimal 对象中存储不必要的精度。

public static void main(String[] args) {
    BigDecimal seven = new BigDecimal(7);
    BigDecimal sevenWithDecimals = new BigDecimal("7.12");
    DecimalFormat decF = new DecimalFormat("#.000000");
    
    System.out.println(decF.format(seven.doubleValue()));
    System.out.println(decF.format(sevenWithDecimals.doubleValue()));
}

输出

7.000000

7.120000