提交具有以下错误的表单后出现问题:
Input string was not in a correct format.
我的代码:
Decimal intervalStart = Decimal.Parse(IntervalTime.Text);
Decimal intervalTotal = intervalStart * 1000;
string interval = intervalTotal.ToString();
我试图得到一个总数而不是十进制数,但是十进制对于获取那个整数(乘以1000)至关重要.
例如,我的小型应用程序读取一个视频文件,并将总数(以秒为单位)放入“ IntervalTime.Text”框中.然后将其转换为毫秒并成为整数.
Video: 87.524 seconds. Multiply it by 1000, you get 87524. <- This is what I need but continue getting the above error.
解决方法:
这不起作用:
string b = "87.524";
Decimal intervalStart2 = Decimal.Parse(a);
但这确实是:
string a = "87,524";
Decimal intervalStart1 = Decimal.Parse(a);
问题出在定界符中.
可能的解决方案之一可能是:
string b = "87.524";
b = b.Replace(".", ",");
Decimal intervalStart = Decimal.Parse(b);
同样在此question中,显示了如何自己定义定界符:
decimal.Parse("87.524", new NumberFormatInfo() { NumberDecimalSeparator = "." })
另一种方法是定义特定的CultureInfo:
decimal.Parse("87.524", new CultureInfo("en-US"));