- Tham gia
- 13/6/06
- Bài viết
- 7,201
- Được thích
- 24,664
PhanTuHuong đã viết:Cách xử lý như thế nào hả bác ?
Dim a As Double, b As Double, s As Double
a = 0.11
b = 0.1
s = 0.21
If s = a + b Then
MsgBox "True"
Else
MsgBox "False"
End If
Dim a As Double, b As Double, s As Double
a = 0.11
b = 0.1
s = 0.21
If Val(s) = Val(a + b) Then
MsgBox "True"
Else
MsgBox "False"
End If
Dim a As Currency
Dim b As Currency
Dim s As Currency
a = 0.1
b = 0.11
s = 0.21
If s = (a + b) Then
MsgBox "Ok"
End If
PhanTuHuong đã viết:
TẠP CHÍ THẾ GIỚI VI TÍNH đã viết:Lưu ý: Lỗi trên không thể được lặp lại trong VB cũng như Excel vì trong một số trường hợp Microsoft không hoàn toàn tuân thủ chuẩn IEEE 754. Tuy nhiên, chúng ta có thể thử và thấy Excel đôi khi cũng để lộ những kết quả "kỳ quái". Với VB, chúng ta thấy 0.5-0.4-0.1<>0 nhưng với Excel thì 0.5-0.4-0.1=0 mặc dù 0.5-0.4-0.1)*1<>0 (cụ thể với Excel 2003, chúng tôi có kết quả 2.77556E-17).