Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 货币符号在错误的一边_C#_.net_Currency_Cultureinfo - Fatal编程技术网

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”)