C# 货币符号在错误的一边
价格显示在C# 货币符号在错误的一边,c#,.net,currency,cultureinfo,C#,.net,Currency,Cultureinfo,价格显示在RichTextBox中。它接受一个表示价格的double值,并将其显示为字符串 double priceDisplayed = 0.00; richTextBox_itemPrice.Text = priceDisplayed.ToString("C", new CultureInfo("en-AU")); 上述代码导致价格以货币显示在RHS上: 0.00$ 为什么会这样?检查类似的示例,上面的代码似乎应该在LHS上显示货币符号。这真的很奇怪,正如评论中提到的,您的机器上一定存在
RichTextBox
中。它接受一个表示价格的double
值,并将其显示为字符串
double priceDisplayed = 0.00;
richTextBox_itemPrice.Text = priceDisplayed.ToString("C", new CultureInfo("en-AU"));
上述代码导致价格以货币显示在RHS上:
0.00$
为什么会这样?检查类似的示例,上面的代码似乎应该在LHS上显示货币符号。这真的很奇怪,正如评论中提到的,您的机器上一定存在一些文化冲突 同时,您可以在事件
TextChanged
上尝试类似的操作:
private void richTextBox_itemPrice_TextChanged(object sender, EventArgs e)
{
string text = richTextBox_itemPrice.Text;
if (richTextBox_itemPrice.Text.Contains("$"))
{
text = text.Replace("$","");
}
richTextBox_itemPrice.Text = "$" + text;
}
并将字段初始化为具有
richTextBox_itemPrice.Text=“$”
在分配给richTextBox\u itemPrice.text之前,是否将文本呈现为字符串变量修复问题?在dot net fiddle中为我呈现为$0.00
。你能提供更多关于执行环境的信息吗?@Gavin,我试过了,同样的问题。@IanMercer这是一个针对.NET Framework 4.6.1的WinForms应用程序。已尝试调试和发布版本。用VS 2017构建,在Windows 10上运行。这真的很奇怪。您的新文化信息(“en-AU”).NumberFormat.CurrencyPositivePattern
是否为0以外的其他格式?(特别是考虑到您当前的文化背景……)不同的框架和机器也有类似的情况,可以尝试使用CultureInfo.GetCultureInfo(“en-AU”)
?