【发布时间】:2018-09-02 03:15:48
【问题描述】:
我想使用逗号作为小数分隔符打印小数。当我这样做时
import locale
locale.setlocale(locale.LC_ALL, 'nl_NL')
'{0:#.2n}'.format(1.1)
我收到'1,1'。逗号在那里,但精度只有一,而我将其设置为二。怎么会?
注意这种格式的构造如下:
-
#:“'#'选项导致使用“替代形式”进行转换。...此外,对于'g'和'G'转换,不会从结果中删除尾随零。” -
.2:精度。 -
n: "数字。这与'g'相同,只是它使用当前的语言环境设置插入适当的数字分隔符。"
引用来自手册的地方:Format Specification Mini-Language。
按照 cmets 中的建议使用 {.2f} 也不能满足我的要求:'1.10'。精度正确,但语言环境中的逗号被忽略。
【问题讨论】:
-
什么是
n?对于浮点数,使用f。它适用于.2f。 -
它不能与 2f 一起使用,因为它打印 1.1
-
技术上
1.1是浮点数而不是小数。 -
@Psytho、@BlueTomato、@Martin:
n是为了遵守语言环境。f忽略这一点,请参阅编辑。 -
print(format('{0:#.2f}'.format(1.1)).replace('.',','))