Отличие BigDecimal от int? - PullRequest
       37

Отличие BigDecimal от int?

0 голосов
/ 24 ноября 2011

У меня есть два числа, 1.4350 и 1.4300. Когда я вычитаю их, вместо того, чтобы возвращать 0.0050, я ищу, чтобы получить 50. Также необходимо работать с 90.25 и 90.10, возвращая 15.

1 Ответ

2 голосов
/ 24 ноября 2011

Вы можете использовать BigDecimal.unscaledValue().Это вернет то, что вы хотите, как BigInteger.

// Two example numbers:
BigDecimal val0 = new BigDecimal("1.4350");
BigDecimal val1 = new BigDecimal("1.4300");


// This might be a method:

if (val0.scale() != val1.scale())
    throws new IllegalArgumentException("Scales are not the same!");

BigDecimal subtr = val0.subtract(val1);
System.out.println(subtr); // Prints 0.0050

BigInteger unscaled = subtr.unscaledValue();
System.out.println(unscaled); // Prints 50
...