解析和乘以1000,以获得毫秒而不是秒的问题

提交具有以下错误的表单后出现问题:

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.

解析和乘以1000,以获得毫秒而不是秒的问题

解析和乘以1000,以获得毫秒而不是秒的问题

解决方法:

这不起作用:

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"));
上一篇:c#-使用异常规则格式化十进制值


下一篇:用Python的Decimal参数来调皮