Loại decimal
loại C#, .NET là loại số dấu phẩy động được lưu trữ dưới dạng base-10 thay vì mã hóa base-2. float
và double
là các số dấu phẩy động cơ bản-2 điển hình hơn. Tức là, một double
được lưu trữ dưới dạng +/- x * 2^y
trong khi một số thập phân được lưu trữ dưới dạng +/- x * 10^y
. Đó là lý do tại sao nó tốt hơn cho, ví dụ, dữ liệu tài chính, thường được thể hiện dưới dạng x * 10^-2
. Chuẩn IEEE 754 (tiêu chuẩn toán học dấu chấm động) gọi phép toán "dấu chấm động thập phân" này, và định nghĩa một phiên bản 32 và 64 bit của mỗi toán tử.
Trong C++, các loại này được triển khai trong không gian tên std::decimal
và được gọi là std::decimal::decimal32
và std::decimal::decimal64
, trong tiêu đề <decimal>
. Nếu builder Borland C++ có kiểu như vậy, bạn sẽ tìm thấy nó ở đó. Thư viện C++ của GNU bao gồm tiêu đề này nhưng, AFAIK nó không thực sự là một phần của tiêu chuẩn, vì vậy BCB có thể không có nó. Nếu đúng như vậy, bạn cần sử dụng thư viện của bên thứ ba. Ví dụ về @ dash của thư viện Decimal Floating Point của Intel có lẽ là thư viện được biết đến nhiều nhất, mặc dù tìm kiếm trên Google cho số IEEE 754 Decimal
nên bật lên những người khác nếu, vì một lý do nào đó, bạn cần chúng.
Nguồn
2012-06-20 00:36:38
Intel có thư viện http://software.intel.com/en-us/articles/intel-decimal-floating-point-math-library/ thực hiện thông số kỹ thuật số học dấu chấm động thập phân IEEE 754-2008 – dash
@ dấu gạch ngang, Liên kết bạn cung cấp và thư viện Intel có vẻ đầy hứa hẹn. Đó là giá trị một thử cho một ai đó mà cần độ chính xác cao. –
Thay vì sử dụng Borland C++ đã lỗi thời, bạn có thể chuyển sang C++ .NET và sử dụng System.Decimal không? Chắc chắn bạn có thể tạo một chương trình nhỏ trong .NET cho đầu vào. –