获取带比例的大十进制值
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
我有一个字符串,其值为 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