Tôi đã đọc trong bài đăng khác nhau trên stackoverflow và trong tài liệu C#, chuyển đổi long
(hoặc bất kỳ loại dữ liệu nào khác đại diện cho một số) thành double
mất độ chính xác. Điều này khá rõ ràng do sự biểu diễn của các số dấu phẩy động.Độ mất chính xác chuyển đổi từ lâu đến gấp đôi là bao nhiêu?
Câu hỏi của tôi là mất độ chính xác lớn đến mức nào nếu tôi chuyển đổi số lớn hơn thành double
? Tôi có phải mong đợi sự khác biệt lớn hơn +/- X không?
Lý do tôi muốn biết điều này, là tôi phải đối phó với bộ đếm liên tục là long
. Giá trị này được ứng dụng của tôi đọc là string
, cần được truyền và phải được chia cho ví dụ: 10 hoặc một số số nhỏ khác và sau đó được xử lý thêm.
Liệu decimal
có phù hợp hơn với nhiệm vụ này không?
Vâng 'decimal' chắc chắn có thể duy trì tất cả thông tin trong một' long' ... nhưng thực sự không rõ yêu cầu của bạn là gì là. –
@JonSkeet thực sự không có, tôi biết làm thế nào để giải quyết nó với số thập phân, nhưng câu hỏi là nhiều hơn hoặc ít hơn sự tò mò. Tôi sẽ cần bao nhiêu lần mất chính xác. – John