用于格式化数字和本地化的缩写

Posted

技术标签:

【中文标题】用于格式化数字和本地化的缩写【英文标题】:Abbreviations used in formatting numbers and localization 【发布时间】:2014-02-18 11:55:18 【问题描述】:

我看到了这篇文章,Format Number like Stack Overflow (rounded to thousands with K suffix),它解释了如何取一个数字并在末尾应用一个后缀,以便在保留含义的同时缩短大数字并占用更少的空间。 SO 在不同的地方使用相同的基本逻辑。

我想使用类似的逻辑,但我注意到这个解决方案部分是特定于英语的。后缀是英文字母(m = 百万,b = 十亿)和公制符号(k)的混合,我想知道如何重写它,以便它可以本地化为其他语言。

例如,在帖子中,它的数字格式如下:1.1k = 1,100,000。这使用 k metric kilo symbol 表示千。1.4m = 1,400,000 百万。这使用英文单词 million 中的字母 m 来表示百万。1.6b = 1,600,000,000 亿.这使用英文单词billion中的字母b来表示十亿。

我的问题是: 1) 是 kMG 等度量符号吗 被所有文化所识别? (wikipedia 建议它适用于除美国以外的所有人,但我有疑问) 2) .Net BCL 中是否有一些东西可以用来为任何给定语言获取适当的单字母或多字母组合,以表示目前正在用英语做的数百万和数十亿?


我曾考虑只使用所有公制符号,但 G 对我来说并没有注册为数十亿,因为我来自美国 ;) 1.1k1.4M1.6G

如果公制符号在美国以外得到普遍认可,那么也许以上内容适用于所有人,而美国是唯一一个特殊的雪花,这使得它成为一个简单的 if/else 语句。

希望使用非英语语言和写作的人可以对此表示赞同。

【问题讨论】:

这些前缀是国际标准的一部分,您可以将它们视为文化不变的。 physics.nist.gov/cuu/Units/prefixes.html 更一般地说en.wikipedia.org/wiki/Metric_prefix,我相信这些前缀与语言无关。 这个问题在这里有更多答案:ux.stackexchange.com/questions/51275/… 【参考方案1】:

介绍特定文化和/或通用单位。在最简单的情况下,它只是一个因素,例如:

ft =m * 3.2808

将您的数据以默认单位保存在数据库中,然后根据文化简单地计算值并在其末尾添加单位。

关于k,在俄语中它变成К,所以你必须本地化单位。

在某些游戏中会有非星级单位,例如1kkk,但看起来人们很容易习惯这些单位(因为它们是合乎逻辑的),所以另一种方法是教 用户到您的单位。在这种情况下,它应该清楚或有据可查的单位意味着什么。

再举一个例子,在电子领域,1K5 表示1.5 KOhm

【讨论】:

本地化后缀是个好主意。我刚刚本地化了我的整个网站,所以这可能是可行的。我真的在寻找 .Net BCL 中已经存在的东西来解释这种本地化,而不是自己跟踪/映射它。

以上是关于用于格式化数字和本地化的缩写的主要内容,如果未能解决你的问题,请参考以下文章

有没有人知道格式化“缩写”数字的好 javascript 片段?

本地化:如何格式化日期和数字

在python中使用本地化的千位分隔符和小数精度格式化数字

用于格式化和解析日期和数字的 JavaScript 库

format 格式

日期格式: