Littlebobbydroptables
Littlebobbydroptables

Reputation: 3741

Empty String to Double C#

At this moment i am trying to get a double value from textbox like this:

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

But there is a problem, i cant get how to parse empty textbox?

For example if to try this code with OleDb and Excel with empty textbox, we will get error

System.FormatException: Input string was not in a correct format.

Upvotes: 7

Views: 24074

Answers (5)

Kishore Kumar
Kishore Kumar

Reputation: 12884

double result;
Double.TryParse("",out result);

If TryParse is true, the result will have a double value Further you can use if condition,

result = Double.TryParse("",out result) ? result : 0.00

Upvotes: 1

Chris Gessler
Chris Gessler

Reputation: 23123

If Double.TryParse is unable to parse the string, it returns false and sets the out parameter to 0.

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

Or

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

Also note that you can use the out parameter in additional logic within the same if statement:

double d;
if(double.TryParse(textBox1.Text, out d) && d > 500 && d < 1000)
{
  // valid number and the number is between 501 and 9999
}

Upvotes: 1

yukaizhao
yukaizhao

Reputation: 690

double val;
if(!double.TryParse(textBox.Text,out val))
    val = 0.0

Upvotes: 18

Marius Bancila
Marius Bancila

Reputation: 16338

Why don't you just use Double.TryParse that doesn't throw exception?

Upvotes: 0

Grzegorz Gierlik
Grzegorz Gierlik

Reputation: 11232

Did you try Double.TryParse(String, NumberStyles, IFormatProvider, Double%)?

This could help to solve problems with various number formats.

Upvotes: 3

Related Questions