1

通常の .NET フレームワークと同じ精度で.NET Micro Framework (.NETMF) でdouble を解析する方法を理解しようとしています。

従来の .NET フレームワークでこれを行うと、次のようになります。

Debug.Print(Double.Parse("4213238").ToString());

期待される出力 4213238 が得られます。

しかし、.NETMF で同じことを行うと、不正確な出力 4213238.0000000009 が得られます。double のサイズは、両方の .NET Framework 実装で 8 バイトです。.NETMF Double.Parse を通常の .NET フレームワーク Double.Parse と同じように動作させるにはどうすればよいですか?

このためのパーサーメソッドを書くよりも良い方法はありますか?

4

1 に答える 1

3

不正確な出力 4213238.0000000009 が表示されます

いいえ、それは正確です。Double は 15 桁の有効数字を格納できます。それらを数えてください、あなたはそれらすべてを手に入れました。残りは、浮動小数点ハードウェアの実装によって値が影響を受ける単なるランダム ノイズ桁です。MF ターゲットのハードウェアが異なります。別のタイプを選択せず​​に多くを取得する魔法はありません。表示する桁数を減らすだけで、魔法は必要ありません。Int または long はもちろん優れた選択であり、非常に正確です。

于 2013-03-14T01:37:22.890 に答える