C# 如果可能,使用区域性处理2种类型的数字格式

C# 如果可能,使用区域性处理2种类型的数字格式,c#,cultureinfo,number-formatting,currency-formatting,C#,Cultureinfo,Number Formatting,Currency Formatting,目前我有以下一个场景: 我有一个用于数字输入的自定义控件。其属性为:DecimalType。它可能是长十进制或短十进制 问题是:我想将给定的输入格式化为通用格式。使用当前区域性将当前输入格式化为2位小数(短)或4位小数(长) Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalDigits = 2; 我只能在当前区域性上设置一种格式 Thread.CurrentThread.CurrentCulture.NumberFor

目前我有以下一个场景:

我有一个用于数字输入的自定义控件。其属性为:DecimalType。它可能是长十进制或短十进制

问题是:我想将给定的输入格式化为通用格式。使用当前区域性将当前输入格式化为2位小数(短)或4位小数(长)

Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalDigits = 2;
我只能在当前区域性上设置一种格式

Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalDigits = 2;

那么,在我的情况下,我如何有效地处理这个问题呢?因为,在单个表单中可能有2个短的十进制文本框和4个长的十进制文本框。如果将NumberDecimalDigits更改为2,则长十进制无效,反之亦然

简而言之:文本应根据当前区域性设置格式,并使用2个自定义十进制长度


有什么建议我可以遵循来处理这些事情吗?

这里有两种选择。(1) 使用带有小数位数的显式表达式(如#,0.00和#,0.0000)或(2)完全不依赖于CurrentCulture。所有格式化函数都允许显式提供CultureInfo对象,以便每个对象都有一个

就我个人而言,我会使用选项1