如何将我的浮点数更改为两位十进制数字,并使用逗号作为python中的小数点分隔符?

时间:2009-10-07 09:06:12

标签: python floating-point decimal

我有一个浮动:1.2333333

如何将逗号作为小数点分隔符更改为两位十进制数,例如1,23?

3 个答案:

答案 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)。