6

Как округлить до 2 десятичных знаков в Python?

12

Я получаю слишком много знаков после запятой в выводе этого кода (конвертер Фаренгейта в Цельсий).

Мой код сейчас выглядит следующим образом:

def main():
    printC(formeln(typeHere()))

def typeHere():
    global Fahrenheit
    try:
        Fahrenheit = int(raw_input("Привет! Введите значение в Фаренгейтах, и получите его в Цельсиях!\n"))
    except ValueError:
        print "\nВаш ввод не является числом!"
        print "Мы установили ваше значение в Фаренгейтах на 50!"
        Fahrenheit = 50
    return Fahrenheit

def formeln(c):
    Celsius = (Fahrenheit - 32.00) * 5.00 / 9.00
    return Celsius

def printC(answer):
    answer = str(answer)
    print "\nВаше значение в Цельсиях: " + answer + " C.\n"

main()

Так что мой вопрос: как можно сделать так, чтобы программа округляла каждый ответ до второго знака после запятой?

5 ответ(ов)

0

Вы можете использовать функцию round.

round(80.23456, 3)

возвращает результат 80.234.

В вашем случае используйте

answer = str(round(answer, 2))
0

Если вам нужно избежать проблем с плавающей точкой при округлении чисел для бухгалтерских расчетов, вы можете использовать функцию округления из библиотеки numpy.

Для начала установите numpy:

pip install numpy

Затем можете использовать следующий код:

import numpy as np

print(round(2.675, 2))
print(float(np.round(2.675, 2)))

Этот код выведет:

2.67
2.68

Рекомендуется использовать numpy для управления денежными средствами и легкого округления.

0

Вы можете использовать следующую строку кода для округления числа до двух знаков после запятой и его преобразования в тип float:

float(str(round(answer, 2)))

Однако есть более простой способ получить число с нужной точностью без преобразования его в строку и обратно. Вместо этого вы можете использовать форматирование чисел. Вот пример:

answer = 0.0556781255
rounded_answer = round(answer, 2)
print(rounded_answer)  # Вывод: 0.06

Если вас интересует именно значение 0.06 с типом float, то round уже возвращает число в этом формате. Таким образом, вы можете просто делать так:

answer = 0.0556781255
result = round(answer, 2)  # результат будет 0.06 как float

В результате, вам не нужно делать преобразование в строку для округления.

0

Если вам нужно не только округлить результат, но и выполнять математические операции с округленным значением, вы можете использовать decimal.Decimal. Более подробную информацию можно найти в документации.

Пример использования:

from decimal import Decimal, ROUND_DOWN

rounded_value = Decimal('7.325').quantize(Decimal('.01'), rounding=ROUND_DOWN)
print(rounded_value)  # Вывод: 7.32

В этом примере мы сначала создаем объект Decimal с значением 7.325, затем округляем его до двух знаков после запятой с помощью метода quantize, используя режим округления ROUND_DOWN. Таким образом, получаем результат 7.32, с которым можно далее выполнять математические операции.

0

В вашем коде происходит округление значения с использованием библиотеки decimal в Python. Вы создаете объект Decimal, представляющий значение 16.0/7, и затем округляете его до двух десятичных знаков с помощью метода quantize. Для этого вы используете округление ROUND_HALF_UP, которое означает, что если число находится ровно посередине между двумя возможными значениями, то оно будет округлено вверх.

Ниже приведен исправленный код, который также учитывает правильный синтаксис для вывода в Python 3:

from decimal import Decimal, ROUND_HALF_UP

# Здесь представлены все возможные варианты округления:
# ROUND_05UP       ROUND_DOWN       ROUND_HALF_DOWN  ROUND_HALF_UP
# ROUND_CEILING    ROUND_FLOOR      ROUND_HALF_EVEN  ROUND_UP

our_value = Decimal(16.0/7)
output = our_value.quantize(Decimal('.01'), rounding=ROUND_HALF_UP)
print(output)

При выполнении этого кода значение our_value будет округлено до двух знаков после запятой, и результат будет напечатан на экране. Если у вас возникнут дополнительные вопросы по округлению или использованию библиотеки decimal, не стесняйтесь спрашивать!

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь