将字符串转换为Double C#

时间:2011-02-20 10:54:29

标签: c# sql type-conversion

我在DB中有一个浮点数字段。我的应用程序是WindowsForm。我需要将格式为43.27的文本框中的值转换为double。 当我这样做COnvert.ToDouble(txtbox.Text)我得到异常,说输入字符串是错误的格式。 如何纠正这个问题

2 个答案:

答案 0 :(得分:9)

尝试解析时指定文化:

// CultureInfo.InvariantCulture would use "." as decimal separator
// which might not be the case of the current culture
// you are using in your application. So this will parse
// values using "." as separator.
double d = double.Parse(txtbox.Text, CultureInfo.InvariantCulture);

要优雅地处理错误情况而不是抛出异常,可以使用TryParse方法:

double d;
if (double.TryParse(txtbox.Text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out d))
{
    // TODO: use the parsed value
}
else
{
    // TODO: tell the user to enter a correct number
}

答案 1 :(得分:1)

如果要将字符串转换为数字,则需要确定字符串使用的格式。例如。在英语中,有一个小数点(“43.27”),而在捷克语,有一个小数点(“43,47”)。

默认情况下,使用当前的语言环境;如果您知道该号码使用英语转换,您需要明确指定文化,例如

Convert.ToDouble(txtBox.Text, CultureInfo.InvariantCulture);