-1

これはおそらく古いものですが、何も見つかりません。これがなぜなのか、誰にも分かりますか?

Convert.ToDecimal("3.14521963414679E-08")

スロー

FormatException ("入力文字列の形式が正しくありませんでした。")

しかし、これは期待どおりに機能しますか?

Convert.ToDouble("3.14521963414679E-08")

Convert.ToDecimal は指数関数を処理できると思っていましたが、おそらく間違っていました。

4

3 に答える 3

1

Convert.ToDecimal()メソッドはDecimal.Parse()明示的に使用します。

MSDNから;

数値文字列を指数表記できることを示します。AllowExponent フラグを使用すると、解析された文字列に "E" または "e" 文字で始まり、その後にオプションの正または負の符号と整数が続く指数を含めることができます。つまり、nnnExx、nnnE+xx、および nnnE-xx の形式の文字列を正常に解析します。 仮数部または仮数部に小数点記号または記号を使用することはできません。文字列内のこれらの要素を解析できるようにするには、AllowDecimalPoint および AllowLeadingSign フラグを使用するか、これらの個々のフラグを含む複合スタイルを使用します。

Decimal.Parse Method (String, NumberStyles)このメソッドのオーバーロードを使用すると、次のような列挙を使用できますNumberStyles

Decimal.Parse("3.14521963414679E-08",
              NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint);

ここにデモがあります。

于 2013-07-11T11:29:12.793 に答える
0

Because of this->

ToDecimal(String)--Converts the specified string representation of a number to an equivalent decimal number..

ToDouble(String)--Converts the specified string representation of a number to an equivalent double-precision floating-point number.

for further clarification visit- http://msdn.microsoft.com/en-us/library/System.Convert_methods.aspx

Hope it helps..:)

于 2013-07-11T11:31:04.917 に答える