【问题标题】:Handle 2 types of number format using culture if possible如果可能,使用文化处理 2 种类型的数字格式
【发布时间】:2014-03-25 04:21:07
【问题描述】:

目前我有以下场景:

我有一个用于数字输入的自定义控件。其中有一个名为:DecimalType 的属性。这可能是长小数或短小数。

而且,问题是:我想将给定的输入格式化为通用格式。使用当前文化将当前输入格式化为 2 个十进制数字(短)或 4 个十进制数字(长)。

我只能在当前文化上设置一种格式。

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

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

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

简而言之:文本应根据当前文化设置格式,并具有 2 个自定义小数长度。

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

【问题讨论】:

    标签: c# cultureinfo number-formatting currency-formatting


    【解决方案1】:

    这里有两个选项。 (1) 使用带有小数位数的显式 custom number format pattern - 例如 #,0.00 和 #,0.0000 - 或 (2) 根本不依赖 CurrentCulture。所有的格式化函数都允许你显式地提供一个 CultureInfo 对象,这样你就可以为每个对象提供一个。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      相关资源
      最近更新 更多