tôi đã không tìm thấy bất kỳ phương pháp tự nhiên để làm được điều này, vì vậy tôi tạo của riêng tôi trong một lớp helper:Tính tỷ lệ phần trăm cho BigDecimals
public static BigDecimal percentage(BigDecimal base, BigDecimal pct){
return base.multiply(pct).divide(new BigDecimal(100));
}
Nhưng tôi không hoàn toàn giống như nó, tôi tự hỏi, nếu API có một cái gì đó tương tự. Lớp Số (tổ tiên của BigDecimal) sẽ là một nơi tốt đẹp.
Tại sao bạn không thích nó? Có gì sai với nó? –
Tôi nghĩ về việc có bao nhiêu lập trình viên khác sẽ tạo ra cùng một phương pháp, nó chỉ là DRY. Ngay cả máy tính đơn giản nhất cũng có một nút phần trăm. Tôi không thể hiểu tại sao lớp học lại không có nó. –
@LluisMartinez: Vấn đề ở đây là chính xác. Khi bạn chia hai '' BigDecimal' '(mà bạn làm khi tính tỷ lệ phần trăm), bạn phải cung cấp một chế độ làm tròn thích hợp. Tôi cho rằng đó là lý do tại sao lớp không cung cấp phương thức '' percent() ''. Chỉ cần nhìn vào '' BigDecimal'', có sáu phương thức '' divide() '' đã có các chữ ký khác nhau. Cung cấp một phương pháp phần trăm, bạn sẽ phải thêm một phương pháp khác 6+ và cuối cùng sẽ làm nổi bật toàn bộ quá trình triển khai. – user1438038