【问题标题】:How to Convert to Decimal formated gridview cell with DataFormatString="{0:#,###,##0.00}"如何使用 DataFormatString="{0:#,###,##0.00}" 转换为十进制格式的 gridview 单元格
【发布时间】:2014-11-04 10:36:54
【问题描述】:

我正在尝试使用DataFormatString="{0:#,###,##0.00}" gridview 单元格转换为十进制格式。函数Convert.ToDecimal(gridview.Rows[0].Cells[1]) 返回类似"wrong string format" 的内容。

【问题讨论】:

  • 你的 gridview 值是多少?
  • 你需要哪种格式 Ex(dd/MM/yyyy)?
  • gridview.Rows[0].Cells[1] 的值是多少?
  • 值为 1 234 012,01

标签: c# asp.net gridview


【解决方案1】:

您用于十进制的格式似乎不适用于您的应用程序中使用的文化。

有两种解决方案:
1. 单元格使用DataFormatString="{0:D}"
2. 尝试将Decimal.TryParse 与正确的NumberStylesFormatProvider 一起使用。详情点击here

在您的情况下,您应该按如下方式使用 fr-FR 文化:

Decimal.TryParse(gridview.Rows[0].Cells[0], NumberStyles.Any, CultureInfo.GetCultureInfo("fr-FR"), out val)

【讨论】:

  • gridview 中的格式是用户的请求。我对使用 DataFormatString="{F2}" ensted 的 DataFormatString="{0:#,###,##0.00}" 的 Convert.ToDecima() 没有任何问题
  • 按链接值 = "1 345,978"; if (Decimal.TryParse(value, style,culture, out number)) Console.WriteLine("Converted '{0}' to {1}.", value, number); else Console.WriteLine("无法转换'{0}'。", value); // 显示: // 无法转换 '1 345,978'。
  • 您应该使用 fr-FR 文化进行解析:Decimal.TryParse("1 234 012,01", NumberStyles.Any, CultureInfo.GetCultureInfo("fr-FR"), out dec)跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
相关资源
最近更新 更多