String.format 根据 CurrentCulture 更改十进制变量

Posted

技术标签:

【中文标题】String.format 根据 CurrentCulture 更改十进制变量【英文标题】:String.format to change a decimal variable depending on CurrentCulture 【发布时间】:2015-10-20 15:36:15 【问题描述】:

我需要根据 CurrentCulture 更改变量的格式

变量是小数

这是我目前的变更声明:

 string auxst = String.Format(CultureInfo.CurrentCulture, "#,##0.00", variable);

我需要知道在第二个参数中放入什么,这样才会发生这种情况:

Variable = 150.465,1242345

If CurrentCulture is "es ES"(spain) ->  auxst = "150.465,1242345"

If CUrrentCulture is "en EN" ->  auxst = "150,465.1242345"

感谢帮助

【问题讨论】:

【参考方案1】:

如果您使用 CurrentCulture,请不要指定。

你应该使用 Decimal.ToString():

Decimal variable = 15465.1242345M;
string auxst = variable.ToString("N");

【讨论】:

指定。见***.com/questions/475383/… 可以仅用于文档目的,正如您提供的链接所述。 不指定它是为了记录你没有考虑过它。指定它文档考虑过。因此,正如您所考虑的那样,使用 CurrentCulture 是一种选择,而不是疏忽,您应该记录它。 不指定不代表你没有考虑过。这只是意味着您不知道开发人员是否考虑过。这种讨论只是政治性的。 :-) 但我们不在乎,因为它不会改变 PruebasDev 的答案。关键是使用“N”格式化程序。 :-) 确实如此。所以你的建议不应该是“不要指定”,因为你已经考虑过了,因此应该记录你所做的。

以上是关于String.format 根据 CurrentCulture 更改十进制变量的主要内容,如果未能解决你的问题,请参考以下文章

SQL:利用STR_TO_DATE(string, format_mask)将文本型数据更改为日期型数据

用于 String.format() 的 Java 中 %ld 的 C++ 等效项

JavaScript:使用 .NET String.Format() 之类的文化格式化数字/货币?

string.format格式化字符串中转义大括号“{}”

IntelliJ - 是否可以将String.format或StringBuilder的输出复制到剪贴板中?

String.format()方法求教~