請大家Run看看下面的程式,
Single真的是很奇怪,好像都會有那0.000...1 的誤差 ??
有誰知道為什麼嗎??
Dim a As Double
  Dim b As Single
  Dim c As Variant
  Dim d As Single
  
  a = 2.9
  b = 2.9
  c = 2.9
  d = 3.1
  
  Debug.Print a - b    '等於 -9.53674317294428E-08
  Debug.Print b - b    '等於 0
  Debug.Print c - b    '等於 -9.53674317294428E-08
  Debug.Print d - b    '等於 0.1999998 (連自己同形態相減都有誤差??)
  
  Debug.Print a - a    '等於 0
  Debug.Print b - b    '等於 0
  Debug.Print c - c    '等於 0
  
  Debug.Print 2.9 - a   '等於 0
  Debug.Print 2.9 - b   '等於 -9.53674317294428E-08
  Debug.Print 2.9 - c   '等於 0
  Debug.Print 2.9 - b   '等於 -9.53674317294428E-08
創作者介紹
創作者 vbqa 的頭像
vbqa

小吳 VBQA 程式設計討論

vbqa 發表在 痞客邦 留言(3) 人氣()


留言列表 (3)

發表留言
  • 璉璉
  • 這是電腦數值問題, 任何程式語言皆相同...
    隨便找本數值分析的書看看位元組與 Single 或 Double 的關係...
  • KETY
  • 你可以設定為currecny
    dim b as currency
    應該就不會了
  • SupLDN
  • 收到~
    謝謝你們的解惑 ^_^