You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NumberFormatInfo.NativeDigits的实际用途是什么?附代码示例解析

NumberFormatInfo.NativeDigits 的实际用途

NumberFormatInfo.NativeDigits 存储的是对应文化下的本地数字字符集,比如你示例中孟加拉语(bn-IN)的「০,১,২,৩,৪,৫,৬,৭,৮,৯」。

你看到默认 ToString 没用到这些本地数字,是因为大多数文化的默认数字格式化规则,会优先使用阿拉伯数字(0-9)作为通用展示格式。而这个属性的核心用途,是给开发者提供本地数字的映射关系,用于需要显式展示本地化数字的自定义场景:

  • 面向本地用户的界面文本、文档,需要完全遵循当地数字书写习惯
  • 手动转换数字字符,实现自定义的本地化数字格式化
  • 处理一些特殊文化的数字系统,这些系统的数字字符和阿拉伯数字差异较大

举个实际能用它格式化数字的例子:

const int value = int.MaxValue;
CultureInfo culture = CultureInfo.GetCultureInfo("bn-IN");
NumberFormatInfo nfi = culture.NumberFormat;

// 手动将阿拉伯数字替换为孟加拉本地数字
string nativeFormatted = string.Concat(
    value.ToString().Select(c => 
        char.IsDigit(c) ? nfi.NativeDigits[int.Parse(c.ToString())] : c.ToString()
    )
);

Console.WriteLine(string.Join(",", nfi.NativeDigits));
Console.WriteLine(nativeFormatted);

运行结果:

০,১,২,৩,৪,৫,৬,৭,৮,৯
২১৪৭৪৮৩৬৪৭

简单说,这个属性是给开发者提供的底层数字映射工具,默认格式化不会自动用它,但当你需要完全本地化数字展示时,它是关键的资源。

内容的提问来源于stack exchange,提问作者Matthew Layton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:42:18