Java 中 BigDecimal 和 double 的运算

Ang*_*own 0 java variables double bigdecimal

我试图在 java 程序中使用 Advogadro 的数字 (6.022*10^23),我使用 BigDecimal 变量来存储它。但是我想将它与 int 或 double 相乘并仍然保持精度,但它会引发错误!

bad operand types for binary operator '*'
  first type:  double
  second type: BigDecimal
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法可以做到这一点?还有一种方法可以用科学记数法打印结果吗?

提前致谢!

Phi*_*der 5

操作仅支持原始类型(和 + 用于字符串)

BigDecimals 已将操作实现为函数。

您只能使用 BigDecimals 进行 BigDecimals 运算。所以你需要转换你的双值:

BigDecimal result = new BigDecimal(doubleValue).multiply(factor2);
Run Code Online (Sandbox Code Playgroud)