Tôi có vấn đề làm tròn tối nghĩa này trong VBA.Vấn đề làm tròn VBA
a = 61048.4599674847
b = 154553063.208822
c = a + b
debug.print c
Result:
154614111.66879
Đây là câu hỏi, tại sao VBA làm tròn biến c? Tôi đã không đưa ra bất kỳ chức năng làm tròn nào. Giá trị tôi mong đợi là 154614111.6687894847. Ngay cả khi tôi làm tròn hoặc định dạng biến c thành 15 chữ số thập phân, tôi vẫn không nhận được kết quả mong đợi.
Mọi giải thích sẽ được đánh giá cao.
Chỉnh sửa:
Có kết quả mong đợi bằng cDec. Tôi đã đọc này trong bài trả lời Jonathan Allen trong Why does CLng produce different results?
Đây là kết quả để kiểm tra:
a = cDec(61048.4599674847)
b = cDec(154553063.208822)
c = a + b
?c
154614111.6687894847
[Floating-point số học có thể cho kết quả không chính xác trong Excel] (http://support.microsoft .com/kb/78113) – SeanC