在我的项目中有很多地方我尝试使用内置{0:C}
货币格式显示货币.如果数字为负数,则它将括在括号中的值.我希望它改为使用负号.
我的web.config已将文化设置为auto
,并解析为en-US
.
理想的解决方案是一些全局web.config或其他设置,使{0:C}
显示en-US
文化的负面信号,但我也接受其他,不那么棒的解决方案.
Tim*_*ter 15
你必须指定正确的NumberFormatInfo.CurrencyNegativePattern
,可能是1.
Decimal dec = new Decimal(-1234.4321);
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
culture.NumberFormat.CurrencyNegativePattern = 1;
String str = String.Format(culture, "{0:C}", dec);
Console.Write(str);
Run Code Online (Sandbox Code Playgroud)
输出:
-$1,234.43
Run Code Online (Sandbox Code Playgroud)
Sam*_*Sam 14
我认为这里的答案组合将使您更接近您想要的.
protected void Application_BeginRequest()
{
var ci = CultureInfo.GetCultureInfo("en-US");
if (Thread.CurrentThread.CurrentCulture.DisplayName == ci.DisplayName)
{
ci = CultureInfo.CreateSpecificCulture("en-US");
ci.NumberFormat.CurrencyNegativePattern = 1;
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
}
}
Run Code Online (Sandbox Code Playgroud)
如果你不想有任何代码来处理像这样的单一文化......我相信你需要建立自己的文化...... 检查这个问题
归档时间: |
|
查看次数: |
8570 次 |
最近记录: |