У мене є функція, що приймає плаваючі аргументи (як правило, цілі числа чи десяткові знаки з однією значущою цифрою), і мені потрібно вивести значення в рядку з двома знаками після коми (5 -> 5,00, 5,5 -> 5,50 тощо). Як я можу це зробити в Python?
У мене є функція, що приймає плаваючі аргументи (як правило, цілі числа чи десяткові знаки з однією значущою цифрою), і мені потрібно вивести значення в рядку з двома знаками після коми (5 -> 5,00, 5,5 -> 5,50 тощо). Як я можу це зробити в Python?
Відповіді:
Оскільки ця публікація може деякий час бути тут, давайте також вказати синтаксис python 3:
"{:.2f}".format(5)
форматування f-рядків :
Це було нове в Python 3.6 - рядок розміщується в лапках, як зазвичай, f'...
попередньо так само, як і r'...
для необробленої рядки. Тоді ви розміщуєте все, що хочете ввести у свою рядок, змінні, числа, всередині дужок f'some string text with a {variable} or {number} within that text'
- і Python оцінює, як і у попередніх методах форматування рядків, за винятком того, що цей метод набагато читабельніший.
>>> a = 3.141592
>>> print(f'My number is {a:.2f} - look at the nice rounding!')
My number is 3.14 - look at the nice rounding!
Ви можете побачити в цьому прикладі, який ми форматуємо з десятковою комою аналогічно попереднім методам форматування рядків.
NB a
може бути числом, змінною або навіть виразом, наприклад f'{3*my_func(3.14):02f}'
.
Вперед, з новим кодом, я віддаю перевагу f-рядкам над загальними методами% s або str.format (), оскільки f-рядки можуть бути набагато більш читабельними і часто набагато швидшими .
Форматування рядків:
print "%.2f" % 5
math.floor
, math.ceil
абоround
Форматування рядків:
a = 6.789809823
print('%.2f' %a)
АБО
print ("{0:.2f}".format(a))
Кругла функція може бути використана:
print(round(a, 2))
Хороша річ у round () полягає в тому, що ми можемо зберегти цей результат в іншій змінній, а потім використовувати його для інших цілей.
b = round(a, 2)
print(b)
round
. Його не слід використовувати лише для відображення .
round(5.0001, 2)
-> 5.0
, ні'5.00'
Найкоротший синтаксис Python 3:
n = 5
print(f'{n:.2f}')
Я знаю, що це давнє питання, але я намагався знайти відповідь сам. Ось що я придумав:
Пітон 3:
>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict)
0.12_0.13
Використання синтаксису Python 3:
print('%.2f' % number)
Якщо ви хочете отримати значення з плаваючою комою з двома знаками після коми, обмеженими на момент введення дзвінка,
Перевірте це ~
a = eval(format(float(input()), '.2f')) # if u feed 3.1415 for 'a'.
print(a) # output 3.14 will be printed.
eval
струна, коли можна було просто round
? У будь-якому випадку це навіть не працює належним чином, оскільки якщо ви харчуєтесь 5
, ви отримуєте 5.0
замість того, 5.00
як хоче ОП.
nan
та inf
.
d=3
"{:.{}f}".format(5, d)