Lỗi giá trị tuyệt đối bằng 0 khi tính công thức trong ngoặc

Liên hệ QC

bucom2486

Thành viên mới
Tham gia
19/9/10
Bài viết
10
Được thích
1
Giá trị trong ô E2 và E3 đáng lẽ phải bằng 0 "tuyệt đối". Nhưng khi trong công thức có "ngoặc" thì giá trị lại không bằng 0. Vì vậy khi nhân số đó với một số rất lớn thì giá trị đó lại khác không. Ai biết khắc phục lỗi này với, xin cám ơn!
 

File đính kèm

Giá trị trong ô E2 và E3 đáng lẽ phải bằng 0 "tuyệt đối". Nhưng khi trong công thức có "ngoặc" thì giá trị lại không bằng 0. Vì vậy khi nhân số đó với một số rất lớn thì giá trị đó lại khác không. Ai biết khắc phục lỗi này với, xin cám ơn!

do bạn format đó
deciamal place =30
-1234.9876543210.......................
bạn format nó lại it số lẻ thôi
tôi không nhớ chính xác, nhưng excel chỉ cho phép một giới hạn số lẻ thôi (hình như là 15)
 
Không đề cập đến chuyện format, có thể cho ô đấy hiện thị giá trị đến hai hoặc nhiều số 0 sau dấu phẩy nhưng giá trị "thực" của nó vẫn là số KHÁC 0.
Khắc phục thế nào để nó mang giá trị 0 tuyệt đối cơ.
Ví dụ khi mình dùng hàm logic: if(E2=0,"Đúng","Sai") thì excel lại cho giá trị "Sai"
1.jpg
2.jpg
 
Lần chỉnh sửa cuối:
135be8.png

276a3f.png
 
Lần chỉnh sửa cuối:
Không đề cập đến chuyện format, có thể cho ô đấy hiện thị giá trị đến hai hoặc nhiều số 0 sau dấu phẩy nhưng giá trị "thực" của nó vẫn là số KHÁC 0.
Khắc phục thế nào để nó mang giá trị 0 tuyệt đối cơ.
Ví dụ khi mình dùng hàm logic: if(E2=0,"Đúng","Sai") thì excel lại cho giá trị "Sai"
Như bài #2: Excel cho phép sai số đến 1 phần triệu tỉ, một tỉ lệ chính xác quá cao.
Khắc phục, dùng hàm ROUND từng công thức.
 
Không phải lúc nào cũng dùng hàm ROUND được.
Chẳng lẽ trong công thức bình thường nhập ở ô bất kỳ =3*(2.8-2.2-0.6) thì vẫn phải dùng hàm round ư?
Khi nhập =3*(2.8-2.2-0.6) thì excel vẫn bị lỗi, có cách nào khắc phục được triệt để không?
 
có cách khắc phục khác nào ngoài hàm Round không bạn ơi?
Sử dụng phép tính với số thập phân thường xảy ra trường hợp như bạn nói trên, gặp trường hợp này bạn nên sử dụng ROUND(...,-15) để so sánh (chính xác đến 1 phần triệu tỉ). Nếu không dùng hàm thì không còn cách.
 
Trong lập trình sẽ không cho phép so sánh bằng đối với kiểu số là số thực, nếu muốn so sánh bằng thì người ta nên cho 1 Epsilon nào đó để trị tuyệt đối của phép trừ luôn nhỏ hơn nó là đúng bằng. Nên tôi nghĩ trong EXCEL nó cũng sử dụng phương pháp so sánh đó để mà so sánh
 
Sử dụng phép tính với số thập phân thường xảy ra trường hợp như bạn nói trên, gặp trường hợp này bạn nên sử dụng ROUND(...,-15) để so sánh (chính xác đến 1 phần triệu tỉ). Nếu không dùng hàm thì không còn cách.
Nguyên nhân tại sao excel lại sai như thế nhỉ?
 
Nguyên nhân tại sao excel lại sai như thế nhỉ?

Nguyên nhân là máy tính có giới hạn phần tính (bộ nhớ có hạn, và các phép toán dịch bit), nên tất cả các tính toán máy tính phải chấp nhận 1 sai số nào đó, dĩ nhiên là rất nhỏ,

do đó trong hoạt động tính toán máy tính người ta cố gắng tránh sử dụng so sánh =, vì có sai số nên bao giờ cũng là :
ABS(<so sanh>)<= epsilon

nguyên nhân sâu xa hơn bạn tìm hiểu trong khoa học máy tính nhé
 
Lần chỉnh sửa cuối:
Vấn đề là ở chỗ công thức tại D2 có thêm 2 dấu ( và ) thì cho số
khác 0 (sai)
Giải thích thế nào về cách xử lý của Excel????
Nếu không có ngoặc thì đúng, và nếu công thức chứa ngoặc thì lại sai? Mình cũng đang thắc mắc như vậy.
 
Vấn đề là ở chỗ công thức tại D2 có thêm 2 dấu ( và ) thì cho số
khác 0 (sai)
Giải thích thế nào về cách xử lý của Excel????

tôi nghĩ là vậy: khi bạn không để trong dấu () thì đây là kết quả cuối cùng, vì vậy ễxcel đã làm tròn con số
khi bạn để phép tính trong () có nghĩa là kết quả sẻ tiếp tục được sử dủng để tính toán tiếp nên excel không làm tròn số
còn cái vụ làm tròn số thì thử lên google tìm hiểu thư ví dụ "Errors when subtracting" hay "Subtracting result đin't zero" chẳng hạn, chúng ta có thể hiểu được sơ sơ cách máy tính tính theo kiểu nhi phân
vì vậy phải chịu thôi, chỉ có cách dùng hàm Round để khắc phục thôi
 
Web KT

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

Back
Top Bottom