Как при выводе на печать использовать запятую в качестве десятичной точки
Подскажите пожалуйста как сделать так, чтобы вывод float(нецелого числа) был с запятой, а не точкой? Такой код:
a=float(int(input()))
print(a)
возвращает: 1.14
а мне нужно: 1,14
Как это можно реализовать
Ответы (2 шт):
Если данный формат нужен только для вывода на печать, то можно привести ваше значения "a" к типу string и заменить "." на "," используя replace():
a = float(int(input()))
a = str(a).replace(".", ",")
Либо, как уже писали, поменять локаль, чего делать также не рекомендую.
Короткий ответ
Примените стандартный модуль locale:
print(locale.str(a)) # выводит 1,14
Долгий ответ:
Ваш код никогда не может вывести
1.14, потому что ваша командаa=float(int(input()))ожидает только целые числа - в противном случае выводит ошибку
ValueError: invalid literal for int() with base 10: '1.14'Вы вероятно хотели
a = float(input())Для вывода локализованных версий значений предназначен модуль locale;
для перевода числаaтипаfloatприменяется его функцияstr():locale.str(a) # 1,14 (или 1.14 в другой, например английской локализации)Значит, вся ваша программа может быть такой:
import locale a = float(input()) print(locale.str(a))
Когда бы у вас было неправильно установлена среда (например на английскую) - что очень невероятно — примените после импорта команду
locale.setlocale(locale.LC_ALL, "") # для операционной системыили (например)
locale.setlocale(locale.LC_ALL, "ru_RU")