Tôi muốn chuyển đổi BigDecimal thành String cho mục đích in nhưng in ra tất cả các chữ số mà không cần ký hiệu khoa học. Ví dụ:Định dạng BigDecimal mà không có ký hiệu khoa học với precission đầy đủ
BigDecimal d = BigDecimal.valueOf(12334535345456700.12345634534534578901);
String out = d.toString(); // Or perform any formatting that needs to be done
System.out.println(out);
Tôi muốn nhận 12334535345456700.12345634534534578901 được in. Ngay bây giờ tôi nhận được: 1.23345353454567E + 16.
'System.out.println (ra); 'không' System.out.println (đầu ra);' –
Một phần của vấn đề là '12334535345456700.12345634534534578901' bị cắt bớt thành' 1.23345353454567E + 16' ngay cả trước khi giá trị được chuyển vào hàm tạo 'BigDecimal', vì các giá trị kép không đổi trong mã của bạn không có độ chính xác cao như vậy. Bạn có thể xác minh điều này bằng cách đơn giản cố gắng lưu trữ nó trong biến 'double' thay vào đó và in ra: http://ideone.com/j5FKp1. Bạn cần bắt đầu với giá trị dưới dạng chuỗi nếu bạn muốn có độ chính xác cao hơn. – mellamokb