5

現時点では、次のようにテキストボックスからdouble値を取得しようとしています。

String.IsNullOrEmpty(textBox1.Text) ? 0.0 : Double.Parse(textBox1.Text)

しかし、問題があります。空のテキストボックスを解析する方法を取得できませんか?

たとえば、このコードをOleDbとExcelでテキストボックスを空にして試してみると、エラーが発生します

System.FormatException:入力文字列が正しい形式ではありませんでした。

4

5 に答える 5

15
double val;
if(!double.TryParse(textBox.Text,out val))
    val = 0.0
于 2012-09-25T12:55:50.290 に答える
3

やってみましたDouble.TryParse(String, NumberStyles, IFormatProvider, Double%)か?

これは、さまざまな数値形式の問題を解決するのに役立ちます。

于 2012-09-25T12:54:46.113 に答える
1
double result;
Double.TryParse("",out result);

TryParseがtrueの場合、結果はdouble値になります。さらに、if条件を使用できます。

result = Double.TryParse("",out result) ? result : 0.00
于 2012-09-25T12:54:59.900 に答える
1

文字列を解析できない場合Double.TryParseは、falseを返し、outパラメータを0に設定します。

double d;
if(double.TryParse(textBox1.Text, out d)
{
  // valid number
}
else
{
  // not a valid number and d = 0;
}

または

double d;
double.TryParse(textBox1.Text, out d)
// do something with d.  

また、同じifステートメント内の追加のロジックでoutパラメーターを使用できることにも注意してください。

double d;
if(double.TryParse(textBox1.Text, out d) && d > 500 && d < 1000)
{
  // valid number and the number is between 501 and 9999
}
于 2012-09-25T12:55:25.957 に答える
0

例外をスローしないDouble.TryParseを使用してみませんか?

于 2012-09-25T12:55:07.690 に答える