5

此时我正试图从这样的文本框中获取双重值:

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 为真,则结果将具有双精度值此外,您可以使用 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 回答