我在asp.net
申请中使用波斯文化。
我将价格显示为
PriceLabel.Text = string.Format("{0:C0}", 12000);
这导致12,000 ريال
其中ريال
是波斯货币符号,但我希望货币符号在价值之后(波斯语从左到右,因此,“之后”,我的意思是在数字的左侧。)
我在Style="text-align: right"
上尝试PriceLabel
,在包含标签的dir="rtl"
标记上尝试<td>
,但这也没有帮助。
答案 0 :(得分:1)
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 ريال
答案 1 :(得分:0)
.NET库正在做他们应该做的事情,并以您请求的格式显示货币。要改变这种情况,你会破坏i18n,但如果你知道波斯货币符号的Unicode值,你可以尝试使用String.Format,例如。
PriceLabel.Text = string.Format("{0} {1}", 12000, <insert unicode char here>);
我会自由地承认这是一种猜测,绝对不是完美的。
答案 2 :(得分:0)
当您在文本框中输入时,以下剪辑将转换为波斯货币格式:
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;
}
}