30/09/2018, 21:11

Cần Giải Quyết vấn đề Dấu phẩy động và sai số

dấu phẩy động có ảnh hưởng không nhỏ trong việc tính toán!
Ta dễ thấy 2.3 x 6 = 13.8
Tại sao trog java 2.3 x 6 = 12.99999
Làm sao để giải quyết được vấn đề này ạ

cescnghia viết 23:15 ngày 30/09/2018

Vì khi muốn store số 2.3 trong bộ nhớ, nó phải đổi 2.3 sang thành 10.0100110011… để lưu. Vì thế nên mới có sai sót. 1 phương pháp để tránh tình trạng này thì bạn hãy dùng BigDecimal trong java.

Nguyễn Đình Nam viết 23:21 ngày 30/09/2018

Mình cũng dùng BigDecimal mấy lần trước ;
Lúc trước mình new Decimal(2.3) nên sai… và tới hôm nay mình mới hiểu ra rằng new Decimal(“2.3”); mới đúng .
Thanks bạn

Bài liên quan
0