我无法访问双精度数据类型FormatException

时间:2013-12-02 14:30:27

标签: asp.net

错误是

  

输入字符串的格式不正确。

代码:

Itemname = txtitemname.Text;
pprice = Convert.ToDouble(txtpprice.Text);

sprice = Convert.ToDouble(txtsprice.Text);
pdealer = txtdealer.Text;
pmode = txtpmode.Text;

1 个答案:

答案 0 :(得分:0)

通常,此错误与您未指定文化的事实有关。不同的文化有不同的写作方式。例如,在我的国家,我们使用“,”作为小数分隔符而不是不变的“。”

  var d = 5.5;
  Console.Out.WriteLine(d.ToString(CultureInfo.InvariantCulture));
  // yields 5.5
  Console.Out.WriteLine(d.ToString(CultureInfo.GetCultureInfo(1029)));
  // yields 5,5 (czech culture)
  d = Convert.ToDouble("5,5", CultureInfo.InvariantCulture);
  // 55
  d = Convert.ToDouble("5,5", CultureInfo.GetCultureInfo(1029));
  // 5.5

或者(或与指定文化结合使用),您可以捕获格式异常并以某种方式处理它。

  double d;
  try {
    d = Convert.ToDouble("whatever", CultureInfo.InvariantCulture);
  } catch(FormatException) {
    // parsing error
    d = -1;
  }