我有一个浮动:1.2333333
如何将逗号作为小数点分隔符更改为两位十进制数,例如1,23?
答案 0 :(得分:12)
要获得两位小数,请使用
'%.2f' % 1.2333333
要获得逗号,请使用replace()
:
('%.2f' % 1.2333333).replace('.', ',')
第二个选项是change the locale到某个使用逗号然后使用locale.format()
的地方:
locale.setlocale(locale.LC_ALL, 'FR')
locale.format('%.2f', 1.2333333)
答案 1 :(得分:8)
locale module可以帮助您以区域设置的格式读取和编写数字。
>>> import locale
>>> locale.setlocale(locale.LC_ALL, "")
'sv_SE.UTF-8'
>>> locale.format("%f", 2.2)
'2,200000'
>>> locale.format("%g", 2.2)
'2,2'
>>> locale.atof("3,1415926")
3.1415926000000001
答案 2 :(得分:2)
如果您不想弄乱语言环境,您当然可以自己进行格式化。这可以作为一个起点:
def formatFloat(value, decimals = 2, sep = ","):
return "%s%s%0*u" % (int(value), sep, decimals, (10 ** decimals) * (value - int(value)))
请注意,这将始终截断小数部分(即1.04999将打印为1,04)。