Tôi đã đọc nhiều lần trong articles và MSDN float
(hoặc double
) không có đại diện chính xác của số nguyên hoặc giá trị thập phân thực. Chính xác ! Điều đó có thể nhìn thấy khi kiểm tra bình đẳng đi sai hoặc cũng trong khi khẳng định các phép thử cộng hoặc trừ đơn giản. Nó cũng nói rằng float không có đại diện chính xác của các giá trị thập phân như 0,1, nhưng sau đó nếu chúng ta tuyên bố một phao trong phòng thu trực quan như float a = 0.1f;
, làm thế nào để chúng hiển thị chính xác 0,1 trong khi gỡ lỗi? Nó sẽ hiển thị một cái gì đó như 0.09999999..
. Nơi nào tôi bỏ lỡ một liên kết để hiểu nó.Tại sao phao hiển thị biểu diễn chính xác khi khai báo
Nó là một loại giáo dân của câu hỏi hoặc có thể tôi vẫn còn thiếu một số khái niệm!
'0.1f' là một cái gì đó như' 0.100000001490116119384765625', vì vậy chỉ trên chữ số có nghĩa thứ 9 bạn có gì đó! = 0 sau '1' ban đầu và' float' chỉ có độ chính xác khoảng 7 chữ số. – xanatos