VB.NETとVB6の浮動小数(Double)の計算結果の違い
- 題名: VB.NETとVB6の浮動小数(Double)の計算結果の違い
- 著者: GON
- 日時: 2006/08/31 11:37:43
- ID: 17369
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: VB.NETとVB6の浮動小数(Double)の計算結果の違い
- 著者: 千八巧者
- 日時: 2006/08/31 13:04:20
- ID: 17377
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: VB.NETとVB6の浮動小数(Double)の計算結果の違い
- 著者: はいこーん
- 日時: 2006/08/31 13:14:37
- ID: 17378
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: VB.NETとVB6の浮動小数(Double)の計算結果の違い
- 著者: GON
- 日時: 2006/08/31 15:52:25
- ID: 17381
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: VB.NETとVB6の浮動小数(Double)の計算結果の違い
- 著者: はいこーん
- 日時: 2006/08/31 16:05:26
- ID: 17382
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: VB.NETとVB6の浮動小数(Double)の計算結果の違い
- 著者: GON
- 日時: 2006/08/31 18:09:34
- ID: 17386
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
はじめまして、GONと申します。
VB.NETとVB6の浮動小数(Double)の計算結果の違いについてご教示ください。
VB6で正しく計算できていたものがVB.NETでは異なる結果となります。
具体的には下記の数値の計算結果なのですが、
この結果の小数第三位を四捨五入したものがほしいため、
結果として4.28がほしいところが4.27となってしまいます。
[VB6]
4.5 × 0.95 = 4.275
[VB.NET]
4.5 × 0.95 = 4.2749999999999995
※この数値以外でもあります。
数値を変数(Double)に入れても同じ結果となります。
確認のためにコンソールへ出力すると正しく表示されます。
Singleでは正しく計算されます。
Console.WriteLine(4.5 * 0.95)
出力→4.275
現在はDecimalへ変更して検証しておりますが、
Doubleの結果が納得いかない状態です。
この計算仕様のことをご存じの方がいらっしゃいましたらご教示ください。
よろしくお願いいたします。