我想用逗号作为小数分隔符打印小数 . 当我这样做
import locale
locale.setlocale(locale.LC_ALL, 'nl_NL')
'{0:#.2n}'.format(1.1)
我得到 '1,1'
. 逗号在那里,但精度只有一个,而我把它设置为两个 . 怎么会?
请注意,此格式的构造如下:
-
#
:“'#'
选项导致"alternate form"用于转换 . ...此外,对于'g'
和'G'
转换,不会从结果中删除尾随零 . ” -
.2
:精确 . -
n
:“数字 . 这与'g'
相同,只是它使用当前的语言环境设置插入适当的数字分隔符 . ”
引号来自手册:Format Specification Mini-Language .
使用评论中建议的 {.2f}
也不能做我想要的: '1.10'
. 精度是正确的,但忽略来自语言环境的逗号 .
1 回答
当
n
用于打印float
时,它的作用类似于g
,而不是f
,但使用您的区域设置作为分隔符 . 精确的documentation说:所以
.2n
表示在小数点前后打印2位总数 .我不是一个简单的方法来使用
n
-style使用locale获得f
-style精度 . 您需要确定您的数字在小数点之前有多少位数,将其加2,然后将其用作格式中的精度 .