Я пытаюсь использовать BigDecimal, чтобы разделить десятичное число на две части (целую часть и дробную часть).
BigDecimal price1 = BigDecimal.valueOf(300.50);
BigDecimal price2 = BigDecimal.valueOf(300.05);
BigDecimal fractionalPart1 = price1.remainder(BigDecimal.ONE);
BigDecimal fractionalPart2 = price2.remainder(BigDecimal.ONE);
System.out.println(fractionalPart1.movePointRight(price1.scale()).abs().intValue()); // Output is 5
System.out.println(fractionalPart2.movePointRight(price2.scale()).abs().intValue()); // Output is 5
Вывод в обоих вышеупомянутых случаях равен 5. Как исправить это (оставив возможность конвертировать его в строку), чтобы он правильно выдал 50 и 5.