Excel 2007 lại tính sai, làm sao tin tưởng bây giờ?

  • Thread starter Thread starter bivily
  • Ngày gửi Ngày gửi
Liên hệ QC

bivily

Thành viên hoạt động
Tham gia
11/10/07
Bài viết
110
Được thích
26
Trước đây Excel 2007 đã tính sai phép tính 850*77.1 = 100000 thay vì 65535. Sáng nay mình lại gặp 1 vấn đề như sau:
Ô A1 gõ giá trị 247.99
Ô B1 gõ giá trị 248.39
Ô C1 mình dùng công thức =B1-A1, cho kết quả là 0.3999999999999770
Mình dùng Excel 2007 (12.0.6661.5000) SP3 MSO (12.0.6662.5000).

Không biết nhà mình có ai đã từng gặp vấn đề trên chưa? Hãy thử em Excel máy của bạn có bị như mình không nhé!
 
Lần chỉnh sửa cuối:
Trước đây Excel 2007 đã tính sai phép tính 850*77.1 = 100000 thay vì 65535. Sáng nay mình lại gặp 1 vấn đề như sau:
Ô A1 gõ giá trị 247.99
Ô B1 gõ giá trị 248.39
Ô C1 mình dùng công thức =B1-A1, cho kết quả là 0.3999999999999770
Mình dùng Excel 2007 (12.0.6661.5000) SP3 MSO (12.0.6662.5000).

Không biết nhà mình có ai đã từng gặp vấn đề trên chưa? Hãy thử em Excel máy của bạn có bị như mình không nhé!
Bạn dỡ ra và cài đặt Office 2010 mà dùng.
Mình đã thử trên máy mình đều ra kết quả đúng là 65535 và 0,4
Có sai tẹo nào đâu
 
Bạn dỡ ra và cài đặt Office 2010 mà dùng.
Mình đã thử trên máy mình đều ra kết quả đúng là 65535 và 0,4
Có sai tẹo nào đâu

Cám ơn bạn đã Test thử. Mình đã cài Office 2010 rồi bạn à. Kết quả vẫn vậy à. Bạn thử xem hiển thị nhiều chữ số thập phân xem. Hoặc tại ô D1 bạn thử gõ =If(B1-A1=0.4,"Dung","Sai") xem kết quả như thế nào nhé!
 
Cám ơn bạn đã Test thử. Mình đã cài Office 2010 rồi bạn à. Kết quả vẫn vậy à. Bạn thử xem hiển thị nhiều chữ số thập phân xem. Hoặc tại ô D1 bạn thử gõ =If(B1-A1=0.4,"Dung","Sai") xem kết quả như thế nào nhé!
Không cần gõ công thức đúng sai
Máy của mình vẫn hiển thị đúng kết quả cho dù có tích vào dấu , và chọn bao nhiêu số trong Decimal places thì vẫn ra 0,4000000
 
Bài này giống bài Công thức chạy sai được post mấy hôm trước. Tức là có một sai số.
Ví dụ:
A1 = 247.99
B1 = 248.39
C1 = B1-A1 = 0.4
D1 = 0.4-C1 = 1.02140518265514E-14
 
Lần chỉnh sửa cuối:
Không cần gõ công thức đúng sai
Máy của mình vẫn hiển thị đúng kết quả cho dù có tích vào dấu , và chọn bao nhiêu số trong Decimal places thì vẫn ra 0,4000000

Bạn đã thử với Decimal places lớn hơn hoặc bằng 15 chưa vậy? Thử xem giúp mình nhé!
Thân.
 
Bạn đã thử với Decimal places lớn hơn hoặc bằng 15 chưa vậy? Thử xem giúp mình nhé!
Thân.
Đúng là với Decimal places là 14 thì ra 0,399999999999977
Mà sao bạn cần nhiều số sau dấu phảy vậy?
Có phải bạn làm công việc mà cần độ chính xác cao đến như vậy không?
 
Có phải bạn làm công việc mà cần độ chính xác cao đến như vậy không?

Vấn đề không phải là cần độ chính xác cao
Vấn đề là với kết quả đó, không thể dò tìm chính xác, không thể dùng nó làm điều kiện để tính cái khác.

Thí dụ A3 = A1 - A2 = 0.4 (thực chất là 0.3999999997)

Các công thức sau đây sẽ cho kết quả không như mong muốn:

= If(A3>=0.4, thưởng 100 triệu, 0)
= Vlookup(A3, ..., 2,0)
=If(A3=0.4, "đậu", "rớt")
 
@bivily:
Không cần phải ra vẻ trọng đại "làm sao tin tưởng bây giờ"
Chuyện con toán số thực trong tin học không hoàn toàn 100% là chuyện mà dân lập trình ai cũng biết.

@ptm0412:
Tôi có nói qua cách so sánh số thực trong bài "Công thức chạy sai" (link bạn leonguyenz nêu trên)
 
@ptm0412:
Tôi có nói qua cách so sánh số thực trong bài "Công thức chạy sai" (link bạn leonguyenz nêu trên)
Cám ơn VetMini, Sai số trong Excel tôi đã biết, bài trên tôi trả lời bài của vanle33:

Mà sao bạn cần nhiều số sau dấu phảy vậy?
Có phải bạn làm công việc mà cần độ chính xác cao đến như vậy không?


Không phải ta cần độ chính xác cao. mà cần biết lý do để làm những công thức liên quan cho đúng.
Thí dụ khi ta viết công thức = If(A3>=0.4, thưởng 100 triệu, 0) mà không được thưởng, ta phải làm lại như thế nào để được thưởng.

Cách đơn giản nhất là làm tròn 10 số thập phân.
 
Hiện tượng này cũng gặp khá nhiều, và cách khắc phục là dùng hàm trunc
Mình đọc trong bài viết "Hướng dẫn sử dụng các hàm excel" của bác BNTT nói như sau:
Nhiều khi làm các phép tính trong excel với số thập phân hay có lỗi, ví dụ: 2,02 - 2,01 = 0,0100000..02
Để chắc ăn và làm chính xác phép tính thì dùng hàm TRUNC(2,02;2)-TRUNC(2,01;2) sẽ bằng 0,01
Hàm TRUNC dùng để cắt bỏ các số sau số thập phân được lựa chọn. Lưu ý là chỉ cắt bỏ chứ ko phải làm tròn.
Lỗi số học có thể khắc phục được, và không chỉ riêng excel 2007 mới có. Hiểu đúng bán chất vấn đề và có phương án sửa sai thành đúng thì vấn đề không có gì phức tạp. Như vậy vẫn có thể tin tưởng vào 1 công cụ tuyệt vời.
 
Web KT

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

Back
Top Bottom