Board logo

標題: [發問] 請教VBA比較運算子的定義 [打印本頁]

作者: jsleee    時間: 2014-2-9 11:08     標題: 請教VBA比較運算子的定義

各位先進好
    請教一個關於VBA比較運算子的問題(如下的判斷式)
    在程式碼中判斷結果,x=1?
    但這個結果與實際認知有所出入,是因為定義的問題嗎?還是有其他問題?
    因個人對於VBA是自行摸索運用,可能有很多基本程式觀念都不清楚,所以請教先進們
    再麻煩抽空解惑,感恩
JS

    If 2.85 = 2.8 + 0.05 Then
        x = 0
    ElseIf 2.85 > 2.8 + 0.05 Then
        x = 1
    End If
作者: owen06    時間: 2014-2-9 15:54

回復 1# jsleee

http://forum.twbts.com/viewthrea ... amp;page=1#pid62025
這篇下面有版主大大提到是浮點運算的BUG,用ROUND()去除
這樣子就可以了
  1. Sub test()
  2. If 2.85 = Round(2.8 + 0.05, 2) Then
  3.     [a1] = 0
  4. ElseIf 2.85 > Round(2.8 + 0.05, 2) Then
  5.     [a1] = 1
  6. End If
  7. End Sub
複製代碼

作者: stillfish00    時間: 2014-2-9 16:28

回復 1# jsleee
浮點算術可能會在 Excel 中造成不正確的計算結果

可轉為decimal再比較
  1.     If CDec(2.85) = CDec(2.8 + 0.05) Then
  2.         x = 0
  3.     ElseIf CDec(2.85) > CDec(2.8 + 0.05) Then
  4.         x = 1
  5.     End If
複製代碼

作者: jsleee    時間: 2014-2-9 19:45

回復 2# owen06

謝謝 OWEN06 先進的指導
作者: jsleee    時間: 2014-2-9 19:46

回復 3# stillfish00


    謝謝 stillfish00 先進的指導




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)