Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Tính Toán 1 Biểu ThứcPhức Tạp

19:47 17-10-2021 515 lượt xem 1 bình luận

[JAVA] Chào mọi người. Em đang cần tính toán 1 biểu thức phức tạp cần chia làm nhiều bước

Ví dụ (a/b + c/d)*e/f

Kiểu dữ liệu a b c d e f là BigDecimal. Tính biểu thức trên chia làm các bước như sau

=> tính a/b = a.divide(b, 2, RoundingMode.HALF_EVEN)

=> tính c/d ....

=> tính a/b + c/d.....

Em gặp phải vấn đề là nếu kết quả phép là số thập phân vô hạn ( ví dụ 10/3 = 3.33333) thì throw exception nên phải làm tròn 2 chữ số như trên. Mỗi bước đều làm tròn nên kết quả cuối cùng cần tính ko chính xác nữa.

Có cách nào để tính kết quả cuối cùng chính xác ko ạ?

Câu Hỏi Của Bạn Lam Lam

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
noExplain đã bình luận 22:54 17-10-2021

Nếu như trên thì khai triển ra thành (a*d+c*b)*e/(f*b*d) giúp cho phép toán chỉ thực hiện 1 phép chia duy nhất để tăng độ chính xác

Thứ 2 nữa là bạn có thể viết một class PhanSo có hàm để cộng và nhân 2 phân số, đến khi cần kết quả thì chỉ cần lấy mẫu chia tử.

 

 

Câu hỏi mới nhất