python中千位分隔符怎么表示_python – 如何设置自定义千位分隔符?

我知道理论上大整数的数字可以按数千个分组,以提高可读性:

Python 3.5.2 (default, Nov 17 2016, 17:05:23)

[GCC 5.4.0 20160609] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import locale

>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

'en_US.UTF-8'

>>> locale.format('%d', 1234567890, grouping=True)

'1,234,567,890'

>>> "{:n}".format(1234567890)

'1,234,567,890'

但是,令人惊讶的是,这不适用于每个语言环境:

>>> locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8')

'pl_PL.UTF-8'

>>> locale.format('%d', 1234567890, grouping=True)

'1234567890'

>>> "{:n}".format(1234567890)

'1234567890'

为什么数字没有格式化?我觉得这很奇怪.我希望打印出类似于1 234 567 890的东西.

根据Format Specification Mini-Language,我们可以明确地强制执行两个可能的分隔符:逗号和下划线_.可悲的是,逗号不适合波兰语,因为它在那里被用作小数点分隔符,而像1_234_567_890这样的数字对于大多数人来说看起来很奇怪.

我们能否以某种方式强制使用不间断的空间作为千位分隔符?

解决方法:

pl_PL语言环境千位分隔符似乎是empty.我不知道这是否准确地表示波兰的常见用法,但Python正确地根据pl_PL语言环境的规则格式化您的数字.这可能是区域设置文件中的错误.

据我所知,没有选项可以手动指定千位分隔符和十进制标记字符.

标签:python,integer,formatting,locale

来源: https://codeday.me/bug/20190701/1350697.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值