Tôi phải tích hợp ứng dụng web của mình với cổng thanh toán. Tôi muốn nhập tổng số tiền bằng USD và sau đó chuyển đổi nó thành Cents làm thư viện cổng thanh toán của tôi chấp nhận số tiền trong Cents (loại Integer
). Tôi thấy rằng Big Decimal
trong java là cách tốt nhất để thao túng tiền tệ. Hiện nay tôi đưa đầu vào như nói 50 USD và chuyển nó sang Integer
như thế này:Cách tốt nhất để chuyển đổi Dollars (Big Decimal) thành Cents (Integer) trong java là gì?
BigDecimal rounded = amount.setScale(2, BigDecimal.ROUND_CEILING);
BigDecimal bigDecimalInCents = rounded.multiply(new BigDecimal("100.00"));
Integer amountInCents = bigDecimalInCents.intValue();
Đây có phải là cách chính xác chuyển đổi USD để Cents hay tôi nên làm điều đó trong một số cách khác không?
cảm ơn @weston vì các đề xuất của bạn! – nikhilahuja
Giải pháp này không thành công cho giá trị âm. Ví dụ, hãy thử -4,56, bạn sẽ nhận được -455. –
@YeshwanthKota đã thử nghiệm nó, đó không phải là trường hợp. Xin hãy giải thích. 'System.out.println (usdToCents (BigDecimal.valueOf (-456, 2))); System.out.println (usdToCents (BigDecimal.valueOf (-4.56))); 'cả hai hiển thị' -4.56' – weston