- 題名: C#とVC++で同じdouble型変数の内部表現が異なるのはなぜ?
- 日時: 2013/05/21 10:51:25
- ID: 31557
- この記事の返信元:
- (なし)
- この記事への返信:
- [31558] Re[1]: C#とVC++で同じdouble型変数の内部表現が異なるのはなぜ?2013/05/21 14:57:22
- [31562] Re[1]: C#とVC++で同じdouble型変数の内部表現が異なるのはなぜ?2013/05/21 16:47:49
- [31563] Re[1]: C#とVC++で同じdouble型変数の内部表現が異なるのはなぜ?2013/05/21 17:04:17
- ツリーを表示
分類:[その他]
現在、VC++で作成されたアプリをC#に移植する作業をしています。
VC++のアプリとC#のアプリで、同じdouble型数値の表示が異なる場合が
あるため、原因をさぐったところ下記のことがわかりました。
・VC++のdouble型変数に"26.7095"を格納し、デバッガで追いかけると
内部表現は"26.7094999...."となり、表示部では小数点以下3桁なので
アプリの表示は"26.709"となる。
・C#で同様にdouble型変数に"26.7095"を格納すると、内部表現も"26.7095"
なので、アプリ上の表示は"26.710"となる。
1/1000程度の違いは問題視されないと思いますが、原因を顧客側に説明しないと
いけなのですが、同じIEEE表現のはずのVC++とC#で何故このような違いが
発生するのかわかりません。
どなたか解説していただけないでしょうか。
よろしくお願いいたします。