2008-11-02 36 views
21

Có loại biến C++ gốc nào là "lớn hơn" so với số double không?
phao là 7
đôi là 15 (tất nhiên tùy thuộc vào trình biên dịch)
Có điều gì lớn hơn là bản địa, hoặc thậm chí không phải là nguồn gốc không?Điều gì lớn hơn gấp đôi?

+0

Tôi thường nghĩ về phao như 4 và đôi là 8, nhưng bạn đang đề cập đến số lượng gần đúng của các chữ số thập phân, trong khi tôi đề cập đến số lượng byte được sử dụng. –

+16

Một triple! (bah dum, chh!) – Thanatos

Trả lời

28

C++ có long double, nhưng không đảm bảo rằng nó chính xác hơn một đồng bằng double. Trên nền tảng x86, thường là double là 64 bit và long double là 64 hoặc 80 bit (cung cấp cho bạn 19 số liệu quan trọng, nếu tôi nhớ đúng).

Số dặm của bạn có thể thay đổi, đặc biệt nếu bạn không ở trên x86.

2

dài gấp đôi, nhưng nhìn chung nó vẫn còn 15 vị trí chính xác.

3

Ngoài ra còn có một số thư viện bigfloat/bigint khác dành cho C++ cho phép tính toán chính xác tùy ý. Có thư viện this trên Microsoft Codeplex, nhưng Googling sẽ tìm thấy bạn rất nhiều người khác.

2

C++ đã lâu gấp đôi, nhưng nó vẫn còn khá hạn chế. Để có thời gian tốt, hãy thử thư viện gmp của GNU. Bạn có thể thiết lập số lượng lớn như bạn muốn, và nó khá thú vị và hackishly khi bạn sử dụng gmp_add thay vì bình thường +. Tôi chắc rằng có một trình bao bọc C++ ở đâu đó.

8

Đôi dài thường chỉ sử dụng 10 byte, nhưng do căn chỉnh thực sự có thể chiếm 12 hoặc 16 (tùy thuộc vào trình biên dịch và tùy chọn) byte trong cấu trúc.

Vòng 10 byte dài cung cấp phần mềm 64 bit; điều này rất thuận tiện khi bạn muốn lưu trữ các số nguyên 64 bit trong dấu phẩy động mà không làm mất độ chính xác.

+1

tại sao điều này lại được bình chọn? Cái này sai rồi hả? –

2

dài dài gấp đôi chỉ một số cpus sẽ cho phép bạn sử dụng nó ...

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