我有这样的代码;
GridView1.FooterRow.Cells[11].Text = String.Format("{0:c}", sumKV)
在我的电脑中,这段代码给出了类似的结果;
但是当我将此代码上传到我的虚拟机时,它看起来像这样;
TL 表示土耳其里拉。但我不想显示货币。我只想要数字。
我也不想改变数字格式。 (如257.579,02)
我怎样才能删除此代码中的 TL ?
答案 0 :(得分:3)
我会用这个:
var cultureWithoutCurrencySymbol =
(CultureInfo)CultureInfo.CurrentCulture.Clone();
cultureWithoutCurrencySymbol.NumberFormat.CurrencySymbol = "";
GridView1.FooterRow.Cells[11].Text =
String.Format(cultureWithoutCurrencySymbol, "{0:c}", sumKV).Trim();
背景:
这仍将保留当前文化的货币格式,它只是删除货币符号
您可以在某处保存这种特殊文化,因此您无需在每次需要格式化值时创建它。
更新:
Trim()
,因为格式化后的数字后面仍有空格。答案 1 :(得分:1)
另一种选择是完全关闭当前线程的货币符号:
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);
答案 2 :(得分:0)
因为您只使用带有格式字符串的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);
答案 3 :(得分:0)
如果您不想显示货币,请不要使用货币格式代码 - {0:c}。 也许尝试以下内容:
GridView1.FooterRow.Cells[11].Text = String.Format("{0:G}", sumKV);