问题
I need to convert the contents of a Textbox (which is currency) to a datatype float. Would I convert to single?
txtPurchItemCorrectPrice.Text.Trim();
回答1:
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);
回答2:
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).
回答3:
float.TryParse(…)
That avoids raising an exception on invalid input.
回答4:
Dim x As Double = Convert.ToDouble(txtPurchItemCorrectPrice.Text.Trim())
来源:https://stackoverflow.com/questions/3158223/converting-a-string-to-a-float-data-type