在计算器应用程序中,我必须将用户输入的字符串转换为数据类型,但我不知道它是浮点数,整数,双精度等,我写道:
value += double.Parse(result.Text);
每当我写12.25这样的东西时,就会出现System.FormatException。但是,如果我写2或89,程序运行没有任何问题。
我真的不知道该怎么做,我已经尝试将double更改为float但会出现同样的错误。
答案 0 :(得分:4)
更安全的方法是使用TryParse
double.TryParse(string, out double)
另请注意,解析与文化相关。要确保您的小数点分隔符为.
,而不是,
,您可以执行以下操作:
double.Parse(result.Text, CultureInfo.InvariantCulture)
答案 1 :(得分:0)
TryParse
是一种很好的方法,但有没有特别的理由不使用Convert
?
value += Convert.ToDouble(result.Text);
当然,如果你在欧洲这样的地方,你会遇到麻烦,用逗号代替小数点,在这种情况下你需要允许文化。