【问题标题】:The C# String.Format() Format ControlsC# String.Format() 格式控件
【发布时间】:2014-08-29 04:31:49
【问题描述】:
dgProducts.Columns["Unit Price"].DefaultCellStyle.Format = "c";

当我执行此代码时,它会显示带有 $ 符号的钱(例如:对于 432,它显示为 $432.00)。但我想要“LKR”而不是“$”符号。有可能这样做吗?请帮帮我!

【问题讨论】:

  • 您将获得 $,因为机器上的区域设置未设置为 sri lanka,如果区域设置设置为 sri lanka,那么您将获得 LKR。你的代码是正确的。如果您想忽略客户端的区域设置,下面的答案就是您想要的
  • 廉价破解:string.Format("{0:C}", yourDouble).Replace("$", "LKR");

标签: c# sql datagridview string-formatting


【解决方案1】:

要覆盖客户端上的区域设置,请设置 FormatProvider。

dgProducts.Columns["Unit Price"].DefaultCellStyle.Format = "c";
dgProducts.Columns["Unit Price"].DefaultCellStyle.FormatProvider =  new CultureInfo("si-LK");

但更好的办法是不要这样做,而只是确保客户端上的区域设置正确

【讨论】:

  • +1。请注意,您将获得 .Net 货币名称(并且“LKR”不是名称)-Console.WriteLine(1.0.ToString("C3", new CultureInfo("si-LK"))); 导致 රු. 1.000,而不是需要自定义文化才能实现的“LKR 1.0”。
  • 您可以使用 CultureInfo.GetCultures(CultureTypes.AllCultures); 获取文化列表。也许斯里兰卡有一个英文变体
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 2012-11-15
  • 1970-01-01
相关资源
最近更新 更多