没有E的Java BigDecimal

use*_*993 11 java bigdecimal

我有一个BigDecimal变量

BigDecimal x = new BigDecimal("5521.0000000001");
Run Code Online (Sandbox Code Playgroud)

式:

x = x.add(new BigDecimal("-1")
      .multiply(x.divideToIntegralValue(new BigDecimal("1.0"))));
Run Code Online (Sandbox Code Playgroud)

我想删除整数部分,以获取值x = ("0.0000000001"),但我的新值是1E-10而不是0.0000000001.

Kep*_*pil 17

要获得String的表示BigDecimal没有指数部分,你可以使用
BigDecimal.toPlainString().在你的例子中:

BigDecimal x = new BigDecimal("5521.0000000001");
x = x.add(new BigDecimal("-1").
              multiply(x.divideToIntegralValue(new BigDecimal("1.0"))));
System.out.println(x.toPlainString());
Run Code Online (Sandbox Code Playgroud)

版画

0.0000000001
Run Code Online (Sandbox Code Playgroud)