加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 本地化指数表示法?

发布时间:2020-12-14 04:21:57 所属栏目:Windows 来源:网络整理
导读:我正在尝试将数字转换为本地化字符串. 对于整数和货币值,它非常简单,因为字符串只是一系列数字和数字分组分隔符.例如.: 12 345 678 901(保加利亚语) 12.345.678.901(加泰罗尼亚语) 12,345,678,901(英文) 12,34,56,78,901(印地语) 12.345.678.901(弗里斯兰语
我正在尝试将数字转换为本地化字符串.

对于整数和货币值,它非常简单,因为字符串只是一系列数字和数字分组分隔符.例如.:

> 12 345 678 901(保加利亚语)
> 12.345.678.901(加泰罗尼亚语)
> 12,345,678,901(英文)
> 12,34,56,78,901(印地语)
> 12.345.678.901(弗里斯兰语)
> 12?345?678?901(普什图语)
> 12’345’678’901(德语)

我使用Windows GetNumberFormat函数来格式化整数(和GetCurrencyFormat格式化货币值).

但有些数字不能用固定表示法合理表示,并且需要scientific notation:

> 6.0221417930×1023

或更具体地说E notation:

> 6.0221417930E23

我怎样才能获得科学记数法的本地化版本?

我想我可以使用本地化数字构建它:

6.0221417930E23
6,0221417930E23
6.0221417930e23
6·0221417930E23
6·0221417930e23
6,0221417930e23
6,0221417930e23
6.0221417930E+23
6,0221417930E+23
6.0221417930e+23
6,0221417930e+23
6·0221417930E+23
6·0221417930e+23
6,0221417930e+23
6.0221417930E23
6,0221417930E23
6.0221417930e23
6,0221417930e23
6·0221417930E23
6·0221417930e23
6,0221417930e23
6.0221417930X10^23
6,0221417930X10^23
6.0221417930x10^23
6,0221417930x10^23
6·0221417930X10^23
6·0221417930x10^23
6,0221417930x10^23
6.0221417930·10^23
6,0221417930·^23
6.0221417930.10^23
6,0221417930.10^23
6·0221417930·^23
6·0221417930.10^23
6,0221417930.10^23

但我不知道其他文化(除了我的文化)是否使用E进行取幂.

据我所知,取幂符号不是Windows或.NET语言环境数据的一部分.但是,Unicode CLDR可以帮助 once again:其<数字>部分包含您要找的内容:

/ numbers / symbols / exponential在给定的文化中表示E或其等价物.

/ numbers / scientificFormats /显示取幂模式.

您需要下载zipped core CLDR data并从common / main目录中提取您感兴趣的每种文化的文件.

如果您希望能够支持所有文化,您必须从所有文化文件中收集相关信息并将其打包到您自己的特定数据库中.这不是一项微不足道的工作,但它是可能的.

我快速浏览了一些非常不同的文化中的数据,例如en,fr,zh,ru,vi,ar:它们都包含相同的模式:#E0.看起来数据不准确(我很怀疑.)或者你不必真正关心:每个人都以同样的方式做到这一点而你实际上并不在乎.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读