Tom*_*eus 5 python string-formatting
我想使用逗号作为小数点分隔符来打印小数点。当我这样做时
import locale
locale.setlocale(locale.LC_ALL, 'nl_NL')
'{0:#.2n}'.format(1.1)
Run Code Online (Sandbox Code Playgroud)
我明白了'1,1'。逗号在那里,但精度只有 1,而我将其设置为 2。怎么会?
请注意,此格式的构造如下:
#:“该'#'选项导致使用“替代形式”进行转换。...此外,对于'g'和'G'转换,不会从结果中删除尾随零。”.2: 精确。n:“数字。这与 相同'g',只是它使用当前区域设置来插入适当的数字分隔符。”其中引用来自手册:格式规范迷你语言。
按照评论中的建议使用{.2f}也不能达到我想要的效果:'1.10'。精度是正确的,但区域设置中的逗号被忽略。
当n用于打印 a时float,它的作用类似于g,而不是f,但使用您的区域设置作为分隔符。精度的文档说:
精度是一个十进制数字,指示使用和格式化的浮点值的小数点后应显示多少位,或者对于使用或格式化的浮点值的小数点前后应显示多少位。
'f''F''g''G'
so.2n表示打印小数点前后总共 2 位数字。
我认为没有一种简单的方法可以f通过语言环境的风格使用来获得风格精度n。您需要确定您的数字小数点前有多少位数字,加 2,然后将其用作格式中的精度。
precision = len(str(int(number))) + 2
fmt = '{0:#.' + str(precision) + 'n'
print(fmt.format(number))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
397 次 |
| 最近记录: |