スペインの MS Windows Server に C# アプリケーションをインストールしました。
したがって、このコードは間違った方法で動作しています。
decimal? top = 80.0m;
double convertedTop = (double)decimal.Parse(top.ToString(), CultureInfo.InvariantCulture);
convertTop は 80000 ですが、80.0 である必要があります
スペインの MS Windows Server に C# アプリケーションをインストールしました。
したがって、このコードは間違った方法で動作しています。
decimal? top = 80.0m;
double convertedTop = (double)decimal.Parse(top.ToString(), CultureInfo.InvariantCulture);
convertTop は 80000 ですが、80.0 である必要があります
あなたのコードは非常に非効率的です。
に変更する必要があります
double convertedTop = Convert.ToDouble(top);
のコンパイル時の型top
がdecimal
orである場合decimal?
(object
またはIConvertible
orではなくValueType
)、さらに効率的なコンパイル時のキャストを使用できます。
double convertedTop = (double)top;
質問に答えるにtop.ToString()
は、文化に敏感です。
あなたもそこを通過する必要がCultureInfo.InvariantCulture
あります。
Nullable<T>
を持ち上げないので、それを実行して明示的に処理ToString(IFormatProvider)
する必要があります。Value
null