Microsoft Visual C++ 6.0 で作成されたアプリケーションがあります。Visual Studio 2010 で C# を使用してアプリケーションを書き直しましたが、精度の問題により結果が一致しません。そのような精度の問題の 1 つに、次のようなものがあります。
float a = 1.0f;
float b = 3.0f;
float c = a / b;
これは、Visual Studio 2010 で実行した場合の C# コードです。c
値 =0.333333343
ただし、同じコードを値定義の値の後に f を削除すると、Visual C++ 6.0 で実行すると c value = が得られます0.333333
。
誰かがそれを整理して、Visual Studio と Visual C++ 6.0 で c の値を同じにする方法を説明できますか??
実際には、値はウォッチ ウィンドウから取得されます。Visual Studio のバージョンによって、浮動小数点形式の表現が異なる場合があることを知りました。したがって、watch の値は役に立たない場合があります。これが、Visual Studio の両方のバージョンで値を出力した理由であり、結果は次のとおりです。Visual C++ 言語を使用する Visual Studio 6.0 では、0.333333 (6 つの 3) です。
しかし、C# 言語を使用する Visual Studio 10 では、0.3333333 (7 つの 3) です。
では、ビジュアル C++ と同じ結果を生成するように C# プログラムを作成するのを手伝ってくれる人はいますか? (つまり、両方のバージョンで同じ結果を生成するためにフローティング操作を行うにはどうすればよいですか???)