Bằng nhau hay không bằng nhau? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

rollover79

Thành viên tiêu biểu
Tham gia
10/9/08
Bài viết
764
Được thích
1,310
Vừa qua có tham khảo code của bác ThuNghi và gặp 1 tình huống sau, không rõ mọi người đã gặp bao giờ chưa. Xin được post lên đây để mọi người tham khảo cho vui.
Mã:
      MsgBox (7109752.26-(1218000.16-41383.88)=5933135.98)
Đoạn code trên khi chạy sẽ hiện ra thông báo là gì(True hay False)?
Đây là trích nguyên 1 đoạn trong code của bác ThuNghi. Đơn giản hơn, để mọi người đỡ phải mất công bấm máy tính, mọi người tham khảo đoạn code này xem kết quả thế nào?
Mã:
    MsgBox (0.11 + 0.1 = 0.21)
 
Vừa qua có tham khảo code của bác ThuNghi và gặp 1 tình huống sau, không rõ mọi người đã gặp bao giờ chưa. Xin được post lên đây để mọi người tham khảo cho vui.
Mã:
      MsgBox (7109752.26-(1218000.16-41383.88)=5933135.98)
Đoạn code trên khi chạy sẽ hiện ra thông báo là gì(True hay False)?
Đây là trích nguyên 1 đoạn trong code của bác ThuNghi. Đơn giản hơn, để mọi người đỡ phải mất công bấm máy tính, mọi người tham khảo đoạn code này xem kết quả thế nào?
Mã:
    MsgBox (0.11 + 0.1 = 0.21)
----Không hiểu ý Bạn,
7109752.26-(1218000.16-41383.88), đúng là bằng 5933135.98 (True)
và 0.11+0.1 đúng là bằng 0.21 (True)
 
Upvote 0
Upvote 0
Vừa qua có tham khảo code của bác ThuNghi và gặp 1 tình huống sau, không rõ mọi người đã gặp bao giờ chưa. Xin được post lên đây để mọi người tham khảo cho vui.
Mã:
      MsgBox (7109752.26-(1218000.16-41383.88)=5933135.98)
Đoạn code trên khi chạy sẽ hiện ra thông báo là gì(True hay False)?
Đây là trích nguyên 1 đoạn trong code của bác ThuNghi. Đơn giản hơn, để mọi người đỡ phải mất công bấm máy tính, mọi người tham khảo đoạn code này xem kết quả thế nào?
Mã:
    MsgBox (0.11 + 0.1 = 0.21)
Có lẽ sai số là do dử liệu dạng Double chăng?
Nếu chuyển thành thế này:
MsgBox (CCur(0.11) + CCur(0.1) = CCur(0.21))
Là OK ngay!
???
Có "cái gì đó" trong việc tính toán số thập phân mà ta chưa hiểu được (ít nhất là tôi chưa hiểu được)
---------------
Ah... vừa phát hiện thì ra vụ này đã từng bàn trên diển đàn mình rồi đấy! Xem tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=608
 
Lần chỉnh sửa cuối:
Upvote 0
Có lẽ sai số là do dử liệu dạng Double chăng?
Nếu chuyển thành thế này:
MsgBox (CCur(0.11) + CCur(0.1) = CCur(0.21))
Là OK ngay!
???
Có "cái gì đó" trong việc tính toán số thập phân mà ta chưa hiểu được (ít nhất là tôi chưa hiểu được)
---------------
Ah... vừa phát hiện thì ra vụ này đã từng bàn trên diển đàn mình rồi đấy! Xem tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=608

Đang test và khai báo lại biến Currency, thấy với số liệu test thì OK, chưa test với 20.000 row.
Hy vọng OK.
Cám ơn các bạn nhiều, nhất là bạn RollOver79.
 
Upvote 0
Đang test và khai báo lại biến Currency, thấy với số liệu test thì OK, chưa test với 20.000 row.
Hy vọng OK.
Cám ơn các bạn nhiều, nhất là bạn RollOver79.
Ở bài viết này:
http://www.giaiphapexcel.com/forum/showthread.php?t=608
Bạn Hai2hai có ý kiến:
Nói tóm lại, trong coding nếu có biến Double thì tớ Val() hết. Hầu như ko lỗi bao giờ.
Tôi đã sửa lại code theo hướng này và test thấy rất chuẩn đấy! ThuNghi thử xem
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom