2013-07-06 57 views
5

Chuẩn IEEE-754 xác định số học thập phân để tránh làm tròn sai số khi sử dụng số dấu phẩy động cơ bản mười (xem ví dụ decimal64 on wikipedia). Có cách nào để sử dụng số thập phân này trong C hay C++?Số học thập phân trong C hoặc C++?

+4

Sử dụng thư viện. libgmp, mpfr, Boost Multiprecision – sehe

+3

Tiêu chuẩn C không có các loại dấu phẩy động thập phân rõ ràng, nhưng [GCC cung cấp điều này] (http://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html). Có nhiều biểu diễn nhị phân cạnh tranh; Tôi tin rằng GCC sửa lỗi biểu diễn trên từng nền tảng được hỗ trợ. –

+2

Các định dạng thập phân được xác định trong IEEE-754 không tránh lỗi làm tròn. (Hãy thử, ví dụ: 10/3) –

Trả lời

4

TR 24733 chỉ định phép toán dấu phẩy động thập phân cho C++, dựa trên IEEE-754. TR có nghĩa là nó là một báo cáo kỹ thuật, vì vậy nó không phải là một phần của tiêu chuẩn C++. GCC cho biết họ có một phần implementation. Hiện tại có một đề xuất trong các tác phẩm để thêm nó vào tiêu chuẩn C++, nhưng đó là vài năm nữa là tốt nhất.

+0

+1, cảm ơn Pete vì những đóng góp quý giá của bạn. Nó thực sự mạnh mẽ để có các thành viên ủy ban/nhà thiết kế trên một trang web QA. – sehe

+0

@sehe - bạn được chào đón. –

Các vấn đề liên quan