回答
这不是宏的作用format!
。这个选项应该由Rust处理。不幸的是,我的搜索引导我得出Rust不能处理区域设置的结论(但?)。
有一个库rust-locale,但他们仍然在阿尔法。
Rust标准库中不支持国际化(i18n)或本地化(l10n)。
有几个原因,没有特定的顺序:
- 一个区域设置相关的输出应该是一个有意识的选择,而不是默认的,
- 国际化和本地化的绝不仅仅是更复杂格式化数字,
- Rust std的目标是小。
format!
机器将用于编写JSON或XML文件。根据编码它的机器的区域设置,您真的不希望最终得到格式不同的文件。这是一个灾难的秘诀。
在运行时检测语言环境也是优化不友好的。突然间你不能在编译时(甚至是部分)预先计算东西,你甚至不知道在编译时要分配哪个缓冲区大小。
这与可疑的有用性有关。日期和数字可以说是非常重要的,但是这个美国与英国格式的战争最终是海洋中的一个下降。一个法国语法小学生肯定会理解,这个数字的格式是典型的法国格式......但如果周围的文本是英文的(我们法语在教/学外语方面差了很多),这对她来说无济于事。区域设置应该影响语言选择,排序顺序,等等......仅仅改变数字的格式是没有意义的,一切应该对其进行开关操作,这就需要更为严重支持(检查gettext
一个C库,提供了良好的基础)。
在主机语言环境中检测到语言环境,并且它在整个过程中是全局的,这也是在这个多线程Web服务器时代可疑的架构选择。想象一下,如果Facebook仅仅因为其数据中心在欧洲运行而在欧洲以瑞典服务的话。
最后,所有这些语言/日期/ ...支持需要大量的数据。 ICU有几十个(或者是几百?)嵌入其中的这种数据的MB。这将使std
的大小爆炸,并使其完全不适合嵌入式开发;无论如何,这可能并不关心。
当然,如果您只选择支持少数几种语言,那么您可以大幅减少这个数量...这是将此置于标准库之外的另一个参数。
当然,但是OP并没有提到'std':可能会有一些国际化的正式外部机构,由铁锈团队烘焙。你是正确的国际海事组织关于*不*将这些东西放在'std'中,但是要用现代语言开发,这必须存在某个地方。 – Boiethios
@Boiethios:我听到你......但是SO格式不利于推荐库不幸。最值得注意的是因为答案中的惯性,这意味着从现在开始的2年,最高的答案可能指的是一个死去的图书馆(这就是要求这样的参考文献的问题被关闭的原因)。因此,我倾向于将自己局限于解释为什么标准库不提供它;这可以让OP免费购物,而不是尝试等待std解决方案(在crates.io上搜索“locale”,在IRC/Reddit /用户论坛上提问)。 –
你是对的。当我回答某些问题时,我会考虑这个问题。 – Boiethios
- 1. 使用小数点分隔符在XAML中格式化值?
- 2. 格式化数字/字符串与小数点分隔符
- 3. 更改小数点分隔符
- 4. 如何用awk/sed更改小数点分隔符?
- 5. 如何格式小数点前导零和没有分隔符?
- 6. 如何在Rails的参数化中更改分隔符
- 7. 如何格式化不带分隔符和小数位的小数?
- 8. 更改VBA中的小数点分隔符
- 9. 更改MySQL中的小数点分隔符
- 10. 千位分隔符在数字格式化后不应该允许使用小数点分隔符
- 11. 如何格式化不以分隔符分隔的值文件?
- 12. BIRT - 更改小数点分隔符 - 句点v/s逗号
- 13. 如何获得小数点分隔符?
- 14. 如何指定小数点分隔符
- 15. 更改SQL小数分隔符
- 16. VBA字 - 更改小数分隔符
- 17. 格式漂浮在蟒蛇也小数点分隔符之前
- 18. 修改小数点和千位分隔符不改变小数
- 19. 如何在Rust中创建一个格式化的字符串?
- 20. C中的小数点分隔符#
- 21. 无法将小数点分隔符Ext.ux.grid.FiltersFeature更改为逗号
- 22. 更改千分隔符在Excel中使用自定义格式
- 23. 如何验证基于小数点分隔符的小数?
- 24. Double.TryParse()输入小数点分隔符不同于系统小数点分隔符
- 25. 小数点(。)作为java应用程序中的分隔符和Oracle数据库中的逗号(,)分隔符
- 26. 如何更改分隔在逗号分隔的制表符
- 27. 如何更改WebStorm中的自定义格式化程序
- 28. 在整个文档中格式化整数千位分隔符
- 29. 如何更改浮点数的格式?
- 30. 如何更改列表的分隔符?
可能重复的[Rust:print/format number with thousand separator](https://stackoverflow.com/questions/26998485/rust-print-format-number-with-thousand-separator) – ljedrz
@ljedrz不,这个OP明确要求浮动号码。你的问题是关于整数。 – Stargateur
这个问题的答案也包含花车,但你是对的;这个问题并不完全重复。 – ljedrz