【问题标题】:Cannot convert value of DataGridViewCell to double无法将 DataGridViewCell 的值转换为加倍
【发布时间】:2018-03-21 20:49:32
【问题描述】:

我正在尝试将 DataGridViewCell 的值转换为双精度值。我发现细胞是对象类型。我试图将它直接从对象转换为双精度然后从对象到字符串再转换为双精度,但它总是将包含逗号的值乘以 10。这是我的代码:

double d = Convert.ToDouble(dataGridView1.Rows[i].Cells[j].Value);

string s = dataGridView1.Rows[i].Cells[j].Value.ToString();
double d = Convert.ToDouble(s);

【问题讨论】:

  • 你的小数点分隔符是什么?
  • 它包含什么值s
  • 我使用“,”作为小数分隔符。我将填充datagridview的Excel工作簿中的分隔符设置为“。”,但它也不起作用。
  • s 包含例如3,5 ,但 d 是 35 然后
  • 您必须检查您的计算机语言的区域配置,并验证小数分隔符是否设置为,.

标签: c# datagridview type-conversion


【解决方案1】:

在将字符串转换为数字时,您应该始终传递IFormatProvider。您的网站将运行的服务器可能具有不同的文化设置。

Convert.ToDouble(s, new CultureInfo("your-culture").NumberFormat);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    相关资源
    最近更新 更多