我想将数值转换为字符串,显示特定于文化的数字。例如,阿富汗使用的达里语(文化名称“prs-AF”)使用 Eastern-Arabic numerals而不是 Arabic numerals在大多数西方文化中使用(0,1,2,3,4,5,6,7,8,9
)。
在检查框架中内置的 CultureInfo 类时,它会列出正确的 native 数字(截取自 LinqPad 中的输出):
CultureInfo.CreateSpecificCulture("prs-AF").NumberFormat.NativeDigits
但是,当尝试将数字转换为字符串以在该文化中显示时,我没有得到本地数字:
var number = 123.5;
var culture = CultureInfo.CreateSpecificCulture("prs-AF");
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
var text = number.ToString(culture);
Console.WriteLine(text);
谁能告诉我如何显示本地数字?
最佳答案
数字替换是在您显示包含数字的文本时发生的事情。
正如你所见,它不应该改变数字的字符串表示。
数字 123.5
被格式化为字符串 123.5
无论数字替换。但是,如果 Thread.CurrentThread.CurrentCulture
被相应地设置并且演示引擎支持数字替换,则它会以适当的字形显示。 (WPF 确实支持)
https://stackoverflow.com/questions/6239729/
相关文章:
java - 了解 JodaTime DateTime.parse(string, formatte
formatting - 代码格式化 : is lining up similar lines ok
database - 在保持抽象的同时将格式化文本存储在数据库中
java - 如何将手机号码拆分为国家代码、地区代码和本地号码?
c++ - 将两个数字合二为一。示例 : 123 and 456 become 123456
angular - VS Code Auto Indent/Code Formatting 将单引号