Как изменить мой float на два десятичных числа с запятой в качестве разделителя десятичной точки в python?

У меня есть float: 1.2333333

Как изменить его на два десятичных числа с запятой в качестве разделителя десятичной точки, например 1,23?

Ответ 1

Чтобы получить два десятичных знака, используйте

'%.2f' % 1.2333333

Чтобы получить запятую, используйте replace():

('%.2f' % 1.2333333).replace('.', ',')

Второй вариант: изменить локаль в какое-то место, где используется запятая, а затем использовать locale.format():

locale.setlocale(locale.LC_ALL, 'FR')
locale.format('%.2f', 1.2333333)

Ответ 3

Если вы не хотите связываться с языковой версией, вы можете, конечно, сделать форматирование самостоятельно. Это может служить отправной точкой:

def formatFloat(value, decimals = 2, sep = ","):
  return "%s%s%0*u" % (int(value), sep, decimals, (10 ** decimals) * (value - int(value)))

Обратите внимание, что это всегда будет усекать часть дроби (то есть 1.04999 будет печатать как 1,04).