How to round to 2 decimals with Python? [duplicate]
Как округлить до 2 десятичных знаков с помощью Python?
Я получаю много десятичных знаков на выходе этого кода (конвертер Фаренгейта в Цельсий).
Мой код в настоящее время выглядит следующим образом:
defmain(): printC(formeln(typeHere()))
deftypeHere(): global Fahrenheit try: Fahrenheit = int(raw_input("Hi! Enter Fahrenheit value, and get it in Celsius!\n")) except ValueError: print"\nYour insertion was not a digit!" print"We've put your Fahrenheit value to 50!" Fahrenheit = 50 return Fahrenheit
f отображает число в виде числа с фиксированной запятой
Ответ 3
Большинство предложенных ответов round или format. round иногда округляется в большую сторону, и в моем случае мне нужно было, чтобы значение моей переменной округлялось в меньшую сторону, а не просто отображалось как таковое.
import math v = 2.357 print(math.ceil(v*100)/100) # -> 2.36 print(math.floor(v*100)/100) # -> 2.35
или:
from math import floor, ceil
defroundDown(n, d=8): d = int('1' + ('0' * d)) return floor(n * d) / d
defroundUp(n, d=8): d = int('1' + ('0' * d)) return ceil(n * d) / d
Ответ 4
Если вы просто хотите распечатать округленный результат, вы можете использовать f-строки, представленные начиная с Python 3.6. Синтаксис такой же, как у str.format()синтаксиса форматной строки, за исключением того, что вы ставите f перед буквенной строкой и помещаете переменные непосредственно в строку, в фигурные скобки.
.2f указывает на округление до двух знаков после запятой:
number = 3.1415926 print(f"The number rounded to two decimal places is {number:.2f}")