user279521
user279521

Reputation: 4807

Converting a string to a float data type

I need to convert the contents of a Textbox (which is currency) to a datatype float. Would I convert to single?

txtPurchItemCorrectPrice.Text.Trim();

Upvotes: 5

Views: 16154

Answers (4)

Chuckie
Chuckie

Reputation: 135

Dim x As Double = Convert.ToDouble(txtPurchItemCorrectPrice.Text.Trim())

Upvotes: 0

Jon Skeet
Jon Skeet

Reputation: 1500165

Do you mean the C# float type?

float f = float.Parse(text);

Or...

float value;
if (float.TryParse(text, out value))
{
     // Yay!
}
else
{
     // Boo! Parse failed...
}

Note that the code above will use the current culture. You may want to specify a different culture, e.g.

...
if (float.TryParse(text, out value, NumberStyles.Float,
                   CultureInfo.InvariantCulture))
...

EDIT: If this is actually a float column in a database, you may want to use double instead.

Note that currency information should usually not be stored in using float/double; it should be stored using a decimal type, e.g. decimal (C#) and NUMBER (SQL).

Upvotes: 4

ChrisF
ChrisF

Reputation: 137128

If you're dealing with currency then I would use double at the very least, if not decimal. That said you want:

double value = double.Parse(txtPurchItemCorrectPrice.Text.Trim());

If you're not sure whether it will be a number or not:

double value;
bool isOK = double.TryParse(txtPurchItemCorrectPrice.Text.Trim(), out value);

Upvotes: 9

Philipp
Philipp

Reputation: 49802

float.TryParse(…)

That avoids raising an exception on invalid input.

Upvotes: 0

Related Questions