3

スペインの MS Windows Server に C# アプリケーションをインストールしました。

したがって、このコードは間違った方法で動作しています。

decimal? top = 80.0m;
double convertedTop = (double)decimal.Parse(top.ToString(), CultureInfo.InvariantCulture); 

convertTop は 80000 ですが、80.0 である必要があります

4

1 に答える 1

7

そうしないでください。

あなたのコードは非常に非効率的です。

に変更する必要があります

double convertedTop = Convert.ToDouble(top);

のコンパイル時の型topdecimalorである場合decimal?(objectまたはIConvertibleorではなくValueType)、さらに効率的なコンパイル時のキャストを使用できます。

double convertedTop = (double)top;

質問に答えるにtop.ToString()は、文化に敏感です。
あなたもそこを通過する必要がCultureInfo.InvariantCultureあります。
Nullable<T>を持ち上げないので、それを実行して明示的に処理ToString(IFormatProvider)する必要があります。Valuenull

于 2013-03-05T18:07:45.620 に答える