• ベストアンサー

VB6で 1-0.1*10 の計算結果が-5.55111512312578E-17

Visual Basic6.0(SP6)で、1.0-(0.1*10.0)の計算結果が-5.55111512312578E-17 になってしまいます。これはイミディエイトウィンドウで、 ?1.0-(0.1*10.0) としても同じ結果になります。 VB6はこういうものなのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom11
  • ベストアンサー率53% (134/251)
回答No.2

visual basic 6.0では、確かめていませんが、 制限がありますが、 どうしても、0にしたいなら、十進計算をすれば、 0になります。 Module Module1 Sub Main() Debug.WriteLine(CDec(1) - CDec(0.1) * CDec(10)) End Sub End Module 結果、0.0 visual basic 6でも、調べると、 10計算ができる様なので、 どうしても、0にしたいなら、 このような方法もあるみたいです。

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

VisualBasicに限らず、どのプログラム言語でも浮動小数点演算とはそういうものです。

  • tom11
  • ベストアンサー率53% (134/251)
回答No.3

>10計算ができる様なので 十進計算の誤記です。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

そういうものです。 0.1 が、2進数で無限小数になるため丸め誤差があります。

関連するQ&A