gpt4 book ai didi

.net - 如何覆盖 ASP.NET Web 应用程序当前区域性的货币格式?

转载 作者:行者123 更新时间:2023-12-01 18:50:03 24 4
gpt4 key购买 nike

en-ZA 区域的货币小数点和千位分隔符分别为“,”和“”,但常用的分隔符为“.”。对于十进制,加上我的用户想要“,”作为千位分隔符。我希望全局设置这些,这样我只需对所有货币字段使用 {0:C} 格式字符串,而无需任何显式 FormatToString 调用。

我希望能够在不更改网络服务器上的区域性设置的情况下执行此操作,因为我还需要将货币的小数位设置为零,因为在报告 R100k 及以上的估计值时不需要美分等.我不想任意将整个区域性设置为零位,仅为此应用程序设置一个位置。

在他对 this question 的回答的评论中,Jon Skeet 建议克隆当前的文化和设置并更改所需的设置。我已按如下方式完成此操作:

void Application_Start(object sender, EventArgs e)
{
var newCulture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
newCulture.NumberFormat.CurrencyDecimalSeparator = ".";
newCulture.NumberFormat.CurrencyGroupSeparator = ",";
}

但是,如何为应用程序从此时开始处理的所有请求激活新区域性?还有其他方法可以实现我的愿望吗?

最佳答案

您可以使用 Application_BeginRequest 事件来设置每个请求的区域性。内部事件:

var newCulture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
newCulture.NumberFormat.CurrencyDecimalSeparator = ".";
newCulture.NumberFormat.CurrencyGroupSeparator = ",";

System.Threading.Thread.CurrentThread.CurrentCulture = newCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = newCulture;

关于.net - 如何覆盖 ASP.NET Web 应用程序当前区域性的货币格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com