C# 如何在.net中显示值后的货币符号?
我在我的C# 如何在.net中显示值后的货币符号?,c#,asp.net,globalization,persian,C#,Asp.net,Globalization,Persian,我在我的asp.net应用程序中使用波斯文化 我把价格显示为 PriceLabel.Text = string.Format("{0:C0}", 12000); 这导致了12000يال其中يال是波斯货币符号,但我希望货币符号位于值的后面(波斯语是从左到右的,因此,我所说的“after”是指数字的左侧) 我在pricelab上尝试了Style=“text align:right”,在包含标签的标记上尝试了dir=“rtl”,但也没有任何帮助。NET库正在做它们应该做的事情,并以您要求的格式显
asp.net
应用程序中使用波斯文化
我把价格显示为
PriceLabel.Text = string.Format("{0:C0}", 12000);
这导致了12000يال
其中يال
是波斯货币符号,但我希望货币符号位于值的后面(波斯语是从左到右的,因此,我所说的“after”是指数字的左侧)
我在
pricelab
上尝试了Style=“text align:right”
,在包含标签的
标记上尝试了dir=“rtl”
,但也没有任何帮助。NET库正在做它们应该做的事情,并以您要求的格式显示货币。要改变这一点,您可能会破坏i18n,但如果您知道波斯货币符号的Unicode值,您可以尝试使用String.Format,例如
var cultureInfo = new CultureInfo("fa-Ir");
cultureInfo.NumberFormat.CurrencyPositivePattern = 3;
cultureInfo.NumberFormat.CurrencyNegativePattern = 3;
var result = string.Format(cultureInfo, "{0:C0}", 12000);
Console.WriteLine(result);
//Result
//12,000 ريال
PriceLabel.Text = string.Format("{0} {1}", 12000, <insert unicode char here>);
pricelab.Text=string.Format(“{0}{1}”,12000,);
我承认这是一个猜测,绝对不是完美的。当您在文本框中键入时,以下截图将转换为波斯货币格式:
private void textBox3_TextChanged(object sender, EventArgs e)
{
decimal Number;
if (decimal.TryParse(textBox3.Text, out Number))
{
textBox3.Text = string.Format("{0:N0}", Number);
textBox3.SelectionStart = textBox3.Text.Length;
}
}