我有这样的代码;
GridView1.FooterRow.Cells[11].Text = String.Format("{0:c}", sumKV)
在我的电脑中,这段代码给出了这样的结果;
但是当我将此代码上传到我的虚拟机时,它看起来像这样;
TL表示土耳其里拉。但我不想显示货币。我只想要数字。
我也不想改变数字的格式。(如 257.579,02)
我怎样才能只删除这段代码中的TL ?
我有这样的代码;
GridView1.FooterRow.Cells[11].Text = String.Format("{0:c}", sumKV)
在我的电脑中,这段代码给出了这样的结果;
但是当我将此代码上传到我的虚拟机时,它看起来像这样;
TL表示土耳其里拉。但我不想显示货币。我只想要数字。
我也不想改变数字的格式。(如 257.579,02)
我怎样才能只删除这段代码中的TL ?
我会用这个:
var cultureWithoutCurrencySymbol =
(CultureInfo)CultureInfo.CurrentCulture.Clone();
cultureWithoutCurrencySymbol.NumberFormat.CurrencySymbol = "";
GridView1.FooterRow.Cells[11].Text =
String.Format(cultureWithoutCurrencySymbol, "{0:c}", sumKV).Trim();
背景:
这仍将保留当前文化的货币格式,它只是删除了货币符号。
您可以将这种特殊的文化保存在某个地方,这样您就不必在每次需要格式化您的价值观时都创建它。
更新:
Trim()
, 因为格式化后的数字后面还有一个空格。另一种选择是完全关闭当前线程的货币符号:
private static NumberFormatInfo SetNoCurrencySymbol()
{
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
NumberFormatInfo LocalFormat = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
NumberFormatInfo ret = culture.NumberFormat;
LocalFormat.CurrencySymbol = "";
culture.NumberFormat = LocalFormat;
// Add the culture to the current thread
Thread.CurrentThread.CurrentCulture = culture;
return ret;
}
这样,您将更改更少的代码。之后您可以随时将其更改回来:
NumberFormatInfo origNumberFormat = SetNoCurrencySymbol();
string x = String.Format("{0:c}", 55);
CultureInfo.CurrentCulture.NumberFormat = origNumberFormat;
string y = String.Format("{0:c}", 55);
因为您仅使用带有格式字符串的 String.Format,所以 sumKV 会根据您的应用程序中实际使用的 UI Culture 进行格式化。
GridView1.FooterRow.Cells[11].Text = String.Format("{0:c}", sumKV),
要摆脱货币符号,请以String.Format
这种方式使用 InvariantCulture:
String.Format(CultureInfo.InvariantCulture, "{0:c}", sumKV);
如果您不想显示货币,请不要使用货币格式代码 - {0:c}。也许尝试以下方法:
GridView1.FooterRow.Cells[11].Text = String.Format("{0:G}", sumKV);