c# - 货币格式

标签 c# .net globalization

我有一些字符串格式的问题,我在格式化特定格式时强制文化:

get { return String.Format("{0:###,###,###,###,##0}", Convert.ToDecimal(_monthPay, new System.Globalization.CultureInfo("es-ES"))); }

这样我就可以得到这个:

300.000,01 美元

在本地主机上它工作正常,但是当我发布到服务器时,我得到这个:

300,000.01 美元

不知道为什么!!!我无权访问服务器,因此无法更改服务器上的区域设置;还有另一种解决方法吗?以便我在本地主机上和发布时正常工作?

谢谢。

最佳答案

您在错误的位置传递了 CultureInfo

通过将 CultureInfo 传递给 Convert.ToDecimal,您告诉 Convert.ToDecimal 使用该文化转换数字。 (如果_monthPay是一个字符串需要解析的话,这个是相关的)
但是,您没有将 CultureInfo 传递给 String.Format,因此它仍在使用默认文化。

顺便说一下,如果您要组合多个值,您应该只使用 String.Format。在您的情况下,您应该调用 ToString 重载。另外,您的格式字符串不必要地很长;你可以简单地写#,0。如果您想包含货币符号,只需使用 C 即可。

因此,您应该编写 Convert.ToDecimal(_monthPay).ToString("#,0", new System.Globalization.CultureInfo("es-ES"))

关于c# - 货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1970209/

相关文章:

c# - 使用 Newtonsoft.Json 使用两个不同的 JsonConverter 序列化 C# 对象

.net - 使用在 Linux 上运行的 .NET Core 时连接到 MongoDB 失败

.net - 具有多种文化的MVC十进制分隔符

c# - 用于投票后和用户声誉的 Redis 排序集

c# - Xamarin.Android 和用户可下载的可执行代码 (.dll)

c# - 关于WCF服务的简单查询

c# - HttpWeb响应

.net - Entity Framework 每个请求模式

jquery - 在 JQuery 中获取本地化语言

c# - 在现有 ASP.NET WebForms 站点中添加具有根路径的第二语言支持