Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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_Globalization - Fatal编程技术网

C# 货币格式

C# 货币格式,c#,.net,globalization,C#,.net,Globalization,我对某些字符串格式有问题,我在格式化特定格式时强制使用区域性: get { return String.Format("{0:###,###,###,###,##0}", Convert.ToDecimal(_monthPay, new System.Globalization.CultureInfo("es-ES"))); } 这样我就可以得到这个: $300000,01 在localhost上,它可以正常工作,但当我发布到服务器时,我得到以下结果: 300000.01美元 我不知道为什么!

我对某些字符串格式有问题,我在格式化特定格式时强制使用区域性:

get { return String.Format("{0:###,###,###,###,##0}", Convert.ToDecimal(_monthPay, new System.Globalization.CultureInfo("es-ES"))); }
这样我就可以得到这个:

$300000,01

在localhost上,它可以正常工作,但当我发布到服务器时,我得到以下结果:

300000.01美元

我不知道为什么!!!我没有访问服务器的权限,因此无法更改服务器上的区域设置;还有别的办法解决吗?这样我就可以在本地主机上正常工作,并且在发布时可以正常工作


谢谢。

不用很长的自定义格式,货币的内置格式怎么样

get { return Convert.ToDecimal(_monthPay).ToString("C", new System.Globalization.CultureInfo("es-ES")); }

编辑:已移动区域性信息。。我仍然不认为使用大量格式字符串是正确的。货币有内置的格式约定…

不用很长的自定义格式,货币的内置格式呢

get { return Convert.ToDecimal(_monthPay).ToString("C", new System.Globalization.CultureInfo("es-ES")); }
Thread.CurrentUICulture = CultureInfo.GetCultureInfo("es-ES");
编辑:已移动区域性信息。。我仍然不认为使用大量格式字符串是正确的。货币有内置的格式约定

Thread.CurrentUICulture = CultureInfo.GetCultureInfo("es-ES");
试着把它放在一些初始化块中

尝试将其放入一些初始化块。

您将文化信息传递到了错误的位置

通过将CultureInfo传递给Convert.ToDecimal,您告诉Convert.ToDecimal使用该区域性转换数字。如果_monthPay是一个字符串,需要对其进行解析,则这是相关的 但是,您没有将CultureInfo传递给String.Format,因此它仍然使用默认区域性

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

因此,您应该编写Convert.ToDecimal\u monthPay.ToString,0,new System.Globalization.CultureInfo。

您在错误的位置传递了CultureInfo

通过将CultureInfo传递给Convert.ToDecimal,您告诉Convert.ToDecimal使用该区域性转换数字。如果_monthPay是一个字符串,需要对其进行解析,则这是相关的 但是,您没有将CultureInfo传递给String.Format,因此它仍然使用默认区域性

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


因此,您应该编写Convert.ToDecimal\u monthPay.ToString,0,new System.Globalization.cultureinfo。

这里要做的是告诉Convert.ToDecimal函数\u monthPay的样子。您所期望的是字符串将使用区域性信息进行格式化

您应该告诉字符串。设置要使用的区域性格式:

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

这里要做的是告诉Convert.ToDecimal函数monthPay的样子。您所期望的是字符串将使用区域性信息进行格式化

您应该告诉字符串。设置要使用的区域性格式:

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

什么服务器?什么语言?问题似乎不完整。您应该将其标记为C,以引起听众的注意,使其能够最好地回答问题。这与货币有何关系?您当前的格式字符串也将截断小数。您需要添加…0。或者…0.00结束,以避免丢失这些数字。什么服务器?什么语言?问题似乎不完整。您应该将其标记为C,以引起听众的注意,使其能够最好地回答问题。这与货币有何关系?您当前的格式字符串也将截断小数。您需要添加…0。或者…0.00结尾,以避免删除这些数字。您还可以将CultureInfo作为第一个参数传递给String.Format:String.Formatnew CultureInfo,{0:,,,0},valueYes,但他首先不应该使用String.Format。老实说,他也不需要庞大的格式字符串。他可以用一个C替换它来获得货币格式。他似乎不需要货币符号。你也可以将CultureInfo作为第一个参数传递给String。format:String.Formatnew CultureInfo,{0:,,,0},valueYes,但他首先不应该使用String.format。老实说,他也不需要庞大的格式字符串。他可以用一个C来代替它来获得货币格式,他似乎不想要货币符号。