2009-04-13 34 views
12

Không rõ ràng về sizeof cho các loại thập phân. Kích thước bằng byte có thay đổi theo độ chính xác như trong máy chủ sql không? Biến chính xác cho loại C# 'thập phân'?C# sizeof thập phân?

Tôi không muốn bật mã không an toàn để chỉ gọi sizeof trên một loại thập phân. Làm thế nào bạn sẽ tiếp cận này?

Trả lời

15

Như những người khác đã nói, decimal luôn là 16 byte (128 bit). Độ chính xác của decimal luôn là 28/29 chữ số. Đó là một loại dấu chấm động, không giống như loại DECIMAL của SQL. Xem my article on it để biết thêm chi tiết.

+1

Đây là câu trả lời hay nhất nếu bạn nhấp vào liên kết và đọc bài viết. MSDN dừng ngắn giải thích cách nó được lưu trữ mà thực sự được yêu cầu tại nguồn tham chiếu chính. –

22

Từ khóa thập phân cho biết loại dữ liệu 128 bit.

Nguồn: MSDN

+0

Có một phiên bản băng thông thấp của MSDN tại>? Hấp dẫn. Cấp, tôi có một kết nối tốc độ cao cả ở nhà và làm việc, nhưng nó thú vị để biết. – Powerlord

+0

Có, tôi thích liên kết với phiên bản băng thông thấp hơn khi được sử dụng làm tài liệu tham khảo vì nó tải nhanh hơn và hiển thị độc đáo trong hầu hết các trình duyệt. –

+0

+1 cho ban nhạc thấp - tôi cũng đã học được điều gì đó mới mẻ hôm nay. –

5

Kích thước của một System.Decimal trong .NET Framework là cố định tại 16 Bytes.

1

128-bit giá trị thập phân chính xác với 28-29 chữ số có nghĩa, 128 bit = 16 byte