5

double のテキスト表現があり、それを double に往復させても安全かどうかを知りたいです。入力の任意の種類の数値スタイルも受け入れたい場合、どうすればこれを知ることができますか? または、Double.Parse で double-string を解析したときに精度が失われるかどうかをどのように知ることができますか? または、ダブル文字列を別のダブル文字列と同じ形式に一致させるにはどうすればよいですか? これらの質問に対する答えは、私が思う解決策になるでしょう。

4

2 に答える 2

5

Rをに変換するにはdouble、フォーマット指定子を使用しstringます。

myDouble.ToString("R")

MSDNのラウンドトリップ ("R") 形式指定子を参照してください。

往復 ("R") 形式指定子は、文字列に変換された数値が解析されて同じ数値に戻されることを保証します。この形式は、Single、 Double、および BigInteger 型でのみサポートされています。

(私のものを強調)

于 2012-08-22T09:12:27.190 に答える
-1

もちろん、これはいくつかの理由で往復安全ではありません。

  1. double にはその視覚的表現に関する情報が含まれていないため、String を double に解析すると数値形式が失われます。

  2. 文字列表現は通常 10 進数ですが、double は 2 進浮動小数点数です。したがって、0.1 の 2 進数表現には有限の桁数がないため、double の 0.1 は正確に 0.1 にはなりません。この問題を回避するために、double ではなく decimal に解析できます。

数値と文字列表現の両方を格納する構造体を構築することをお勧めします。

于 2012-08-22T09:09:23.620 に答える