Как оставить 2 знака после запятой в python
Перейти к содержимому

Как оставить 2 знака после запятой в python

  • автор:

Как сделать ограниченное количество знаков после запятой у вещественного числа — БЕЗ округления

если ответ был полезным, его можно отметить плюсом (нажать треугольник вверх слева от вопроса). Если ответ полностью решил задачу — принять ответ (нажать на галку под треугольниками слева).

12 мая 2022 в 6:55

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

import math x = float(input('x: ')) print (f'Число x: s" % (x)>') 

Отслеживать
ответ дан 8 мая 2022 в 11:03
35.6k 3 3 золотых знака 28 28 серебряных знаков 63 63 бронзовых знака
+1, только str напрягает. Там какое-то табу в вопросе на неё:-) Я сразу её предлагал — отклонили.
8 мая 2022 в 11:12
ну тут оно не влияет на само число, только для подсчета порядка
8 мая 2022 в 11:15

Можно так. Грубовато, но задачу выполняет — откидываем остаток через // .

x = float(input('x: '))*1000//1/1000 print (f'Число x: ') 

Отслеживать
ответ дан 8 мая 2022 в 10:44
4,935 6 6 золотых знаков 12 12 серебряных знаков 29 29 бронзовых знаков

я где-то видел что есть такая команда для принта, которая как раз выполняет задачу. Не могу её найти, вы не слышали про такую?

8 мая 2022 в 10:50

Вообще никогда не интересовался форматированием вывода. Вы бы формулировали запрос тогда по-другому изначально — типа «нужен формат команды print», если это не вариант 🙂

8 мая 2022 в 10:52
ваш вариант работает, спасибо большое. Просто интересно найти именно то самое))
8 мая 2022 в 10:53

Скорее всего, нет такого вывода. Он просто не нужен. Так как чаще используют вывод через строку, просто отрезая ненужные знаки. Раз вам число нужно — дал второй вариант. Если ответ был полезным, его можно отметить плюсом (нажать треугольник вверх слева от вопроса). Если ответ полностью решил задачу — можно принять ответ (нажать на галку под треугольниками слева).

8 мая 2022 в 10:57
/1000 возможно может вызвать .999999999999999999999 в некоторых случаях
8 мая 2022 в 11:04

Можно просто срез по строке взять

>>> x = float(input('x: ')) x: 3.777777777 >>> print(f'Число x: ') Число x: 3.777 

То есть 5 , это длина строки с учетом целой части, дробной и самого знака точки. Утверждение: «После запятой. » в этом случае не работает.

Как работать «после запятой»

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

>>> x = float(input('x: ')) x: 3.777777777 >>> str(round(x, 4))[:-1] '3.777' 

То есть: нам нужны три знака после запятой ⇒ округляем до 4 и забираем строку до предпоследнего

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

def floor_float(variable: float, precision: int) -> str : decimal_part = str(variable).split(".")[1] if len(decimal_part)  
>>> floor_float(3.77777, 4) '3.7777' >>> floor_float(3.777, 4) '3.777' >>> floor_float(3.777000000, 4) '3.777' >>> floor_float(3.77707, 4) '3.7770' 

�� Как сделать 2 знака после запятой в питоне?

Для отображения двух знаков после запятой в Python, вы можете использовать функцию format() или метод round() .

number = 3.141592653589793 formatted_number = "".format(number) rounded_number = round(number, 2)
  • formatted_number : 3.14
  • rounded_number : 3.14

Вы можете использовать любой из этих методов в зависимости от ваших потребностей. Убедитесь, что число, которое вы хотите отформатировать, доступно в переменной number .

Детальный ответ

Как сделать 2 знака после запятой в питоне

Питон предоставляет несколько способов для округления чисел и отображения двух знаков после запятой. Давайте рассмотрим несколько примеров и кода, чтобы показать вам, как это сделать.

1. Использование функции round()

Функция round() предоставляет способ округления числа до определенного количества знаков после запятой. Пример использования функции round() для отображения числа с двумя знаками после запятой:

number = 3.141592653589793 rounded_number = round(number, 2) print(rounded_number)

В этом примере, число 3.141592653589793 будет округлено до 3.14.

2. Форматирование строки с использованием метода format()

Еще один способ отображения числа с двумя знаками после запятой - это использование метода format(). Пример:

number = 3.141592653589793 formatted_number = "".format(number) print(formatted_number)

В этом примере, метод format() используется для форматирования числа с двумя знаками после запятой.

3. Использование f-строк

Самый новый способ форматирования строк в Python - это использование f-строк. С помощью f-строк вы можете легко отобразить число с двумя знаками после запятой. Пример:

number = 3.141592653589793 formatted_number = f"" print(formatted_number)

В этом примере, f-строка используется для форматирования числа с двумя знаками после запятой.

4. Использование модуля decimal

Модуль decimal предоставляет более точное представление чисел с плавающей точкой и надежные методы для их округления. Пример:

from decimal import Decimal number = Decimal('3.141592653589793') rounded_number = round(number, 2) print(rounded_number)

В этом примере, число 3.141592653589793 будет округлено до 3.14 с использованием модуля decimal.

5. Использование оператора форматирования f

С версии Python 3.6 добавили оператор форматирования f, который упрощает отображение числа с определенным количеством знаков после запятой. Пример:

number = 3.141592653589793 formatted_number = f"" print(formatted_number)

В этом примере, оператор форматирования f используется для отображения числа с двумя знаками после запятой.

Заключение

В статье мы рассмотрели несколько способов отображения чисел с двумя знаками после запятой в Python. Вы можете использовать функцию round(), метод format(), f-строки, модуль decimal или оператор форматирования f в зависимости от ваших потребностей. Выберите тот способ, который лучше всего соответствует вашим требованиям и упрощает ваш код.

Как сделать два знака после запятой в питоне? ������

Чтобы сделать, чтобы число имело два знака после запятой в Python, вы можете использовать функцию format() или выражение f-string.

1. Используя функцию format()
number = 3.14159 formatted_number = "".format(number) print(formatted_number) # Вывод: 3.14
2. Используя выражение f-string
number = 3.14159 formatted_number = f"" print(formatted_number) # Вывод: 3.14

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

Детальный ответ

Как сделать два знака после запятой в питоне

Python имеет различные способы форматирования чисел, чтобы отображать только два знака после запятой. В этой статье мы рассмотрим два основных подхода:

1. Использование функции format()

Функция format() предоставляет удобный способ форматирования чисел в Python. Она позволяет указать точность округления числа после запятой.

 number = 3.14159265359 formatted_number = "".format(number) print(formatted_number) 

Результат выполнения этого кода будет:

В этом примере мы использовали форматирование , где :.2f указывает, что мы хотим отформатировать число с двумя знаками после запятой.

2. Метод round()

Метод round() является еще одним способом округления числа с определенной точностью.

 number = 3.14159265359 rounded_number = round(number, 2) print(rounded_number) 

Результат выполнения этого кода также будет:

Зачем форматировать число с двумя знаками после запятой?

  • Финансовые расчеты, где точность до двух знаков крайне важна.
  • Отображение цены товара или услуги с точностью до копейки.
  • Правильное отображение процентных значений.

Однако следует заметить, что в некоторых ситуациях округление чисел может привести к потере точности, поэтому важно учитывать контекст и требования вашей задачи.

Как оставить 2 знака после запятой в python

Часто форматирование строк связано с их выводом на экран. Однако следует помнить, что на вывод передается уже сформированная строка. Создание строки, то есть вставка в нее данных в заданных форматах, является отдельной операцией. Готовая строка может быть, например, присвоена переменной, а не выводиться сразу на экран.

% — оператор форматирования строки

Оператор % по отношению к строкам выполняет операцию форматирования и вставки таким образом, что объект, стоящий справа от него, встраивается согласно определенным правилам в строку слева от него:

Такой способ форматирования считается старым потому, что заимствован из функции printf языка C, а в Python кроме него появились другие способы вставки данных в «строки-шаблоны». Однако в ряде случаев удобнее использовать оператор % .

Вывод вещественного числа с заданной точностью

Оператор деления / возвращает вещественное число. Если количество знаков после запятой бесконечно, интерпретатор Python выведит его с большим количеством знаков в дробной части:

a = 4 / 3 print(a)
1.3333333333333333 

С помощью оператора форматирования строки % можно выполнить округление числа до требуемой точности. Например, оставить только два знака после запятой. Для этого внутри строки, то есть в кавычках, записывают комбинацию символов, которая начинается со знака % . Далее ставят точку. Число после точки обозначает количество знаков после запятой. Символ f обозначает вещественный тип данных float .

a = 4 / 3 print('%.2f' % a)

Обратите внимание, переменная a содержит число с большим количеством знаков в дробной части. Строка ‘1.33’ является результатом выполнения выражения ‘%.2f’ % a . Функции print() передается готовая строка ‘1.33’ . Предварительно эту строку можно было бы присвоить отдельной переменной:

a = 4 / 3 b = '%.2f' % a print(b) 

С другой стороны, по правую сторону от оператора форматирования строки не обязательно указывать переменную. Чаще здесь записывают непосредственно выражение. При этом берут его в скобки.

print('%.2f' % (4 / 3))

Строка, содержащая в себе спецификаторы преобразования, также может содержать обычные символы:

print('A = %.1f, B = %d' % (3, 4))
A = 3.0, B = 4

Символ d в формате вставки обозначает целое число (тип int ).

Оператор форматирования строк выполняет округление вещественных чисел, а не простое отбрасывание «лишних» цифр:

print('%.2f, %.2f' % (0.123, 0.126))
0.12, 0.13
Вывод символа

Чтобы получить любой символ из таблицы Unicode, в спецификаторе используют букву c , при этом после знака оператора форматирования указывают код требуемого символа.

print('%c' % 189) print('%c' % 32400)
Вставка в строку значений словаря через ключи
ab = print('%(good)s, %(price).2f' % ab)
AB, 2.30 
Вывод данных в поля заданной ширины

Бывает данные надо вывести в виде таблицы. Это значит, что каждый элемент данных выводится в поле определенной ширины, которая измеряется в знакоместах.

Например, вместо подобного вывода:

First 483 1.1 Second 9 10.7 
First 483 1.1 Second 9 10.7 

Для таких случаев в формате вставки элемента данных в строку указывается ширина поля (количество знакомест). Делается это сразу после знака процента.

print('%-7s %5d %8.1f' % ('First', 483, 1.1)) print('%-7s %5d %8.1f' % ('Second', 9, 10.65))

Знак «минус» заставляет данные выравниваться по левому краю. По умолчанию они выравниваются по правому:

print('%7s %5d' % ('First', 483)) print('%7s %5d' % ('Second', 9))
First 483 Second 9 

Строковый метод format

Строковый метод format вставляет переданные в него аргументы в строку, к которой применяется. В строке места вставки, или «поля замены», определяются фигурными скобками. Внутри скобок могут указываться индексы или ключи аргументов, переданных в метод format.

print("<>, <> and <>".format('A', 8, 'B')) print(", and ".format('A', 8, 'B'))
A, 8 and B 8, A and B 

В format() может передоваться больше аргументов, чем имеется мест вставок в строке. В таком случае оставшиеся аргументы игнорируются.

nums = ['I', 'II', 'III', 'IV', 'V'] print("<> <> <>".format(*nums)) print(" ".format(*nums))
I II III I V 

Вставка значений по ключу:

print(' = '.format(var='pi', value=3.14))
pi = 3.14 
u = print('-'.format(**u)) print(''.format(**u)) print('-'.format('John', **u))
Bob-35 Bob John-35

Вывод атрибутов объекта:

class House: size = 5 street = "Red" h = House() print(', '.format(h))
5, Red 

Метод format позволяет задавать ширину поля и выравнивание:

u = print('--'.format(**u)) print('10>-4>-'.format(**u)) print('--'.format(**u))
Bob - 35- Bob- 35- Bob - 35 - 

Вывод вещественных чисел:

print('<>'.format(4/3)) print(''.format(4/3)) print(''.format(4/3)) print(''.format(4/3)) print(''.format(4/3))
1.3333333333333333 1.333333 1.33 1.33 1.333333e+00 

Форматированные строковые литералы

В последних версиях Python появилась возможность использовать так называемые форматированные строковые литералы (formatted string literals). В отличие от обычных строковых литералов перед f-строками ставится буква f .

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

user = input() print(f'Hello !') a = 4.5678 print(f'Result ')
Bob Hello Bob! Result 4.57 
print(f'Hello !') a = 4 b = 3 print(f'Result ')
John Hello John! Result 1.33 

Выравнивание строк другими строковыми методами

a = "Hello" print('|', a.center(10), '|') print(a.rjust(14)) print(a.ljust(10)) print(a.ljust(14, '.')) print(a.center(14, '.'))
| Hello | Hello Hello Hello. . Hello. 

Фиксированное количество знаков после запятой в Python

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

a = [1000, 2.4, 2.23456754323456, 2754.344] for i in a: print('%.3f' % i) # 3 знака после запятой 
1000.000 2.400 2.235 2754.344 

Отслеживать
ответ дан 4 апр 2017 в 18:55
Кирилл Малышев Кирилл Малышев
10.8k 1 1 золотой знак 18 18 серебряных знаков 34 34 бронзовых знака
а чем запись print(‘%.3f’ % i) лучше(хуже) записи x = float(‘ ‘.format(x)) ?
12 янв 2019 в 13:56
@Rashid-s, рекомендуется в Python 3 использовать format. stackoverflow.com/questions/12382719/…
12 янв 2019 в 14:04

Мне кажется что вы слегка усложняете. Есть чудесная функция round(), в которую в можете передать число, а через запятую передать количество знаков после. Так как всё равно там будет округление

d = round(3.14, 1) print(d) # 3.1 

Отслеживать
ответ дан 23 авг 2020 в 13:01
41 2 2 бронзовых знака
Вы пробовали тестировать ваше решение на примерах из вопроса?
23 авг 2020 в 13:12

Почему вы считаете, что ТС что-то услажняет? round (123.000001, 3) # 123.0 , но ожидаемый результат другой. Он является нескромным желанием? Если да, то почему?

23 авг 2020 в 13:28

def toFixed(f: float, n=0): a, b = str(f).split('.') return '<>.<><>'.format(a, b[:n], '0'*(n-len(b))) f = 7.123 print(toFixed(f, 10)) # 7.1230000000 print(toFixed(f, 2)) # 7.12 

Отслеживать
ответ дан 5 апр 2017 в 8:50
vadim vaduxa vadim vaduxa
8,932 14 14 серебряных знаков 24 24 бронзовых знака

Я для этого использую встроенный модуль. Понятно, что он возвращает Decimal, но я потом обратно преобразую во float.

from decimal import Decimal number = Decimal('0.424242') number = number.quantize(Decimal('1.000')) number = float(number) # возвращает true, т.к. оба типа данных теперь float print( 0.424 == number ) 

Отслеживать
ответ дан 11 апр 2020 в 13:23
Nick Alexander Nick Alexander

если нужно не округлить, а именно обрезать знаки после запятой n = float(input())

print(int(n * 1000) / 1000)

print(n * 1000 //1 /1000)

a=input() print(float(a[:5])) #если заранее известно количество знаков

Числа с плавающей точкой¶

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

>>> 1. 1.0 >>> .1 0.1 >>> 4.2 4.2 >>> 4.2e3 # то же, что и 4.2 * 10 ** 3 == 4.2 * 1000 4200.0 >>> 4.2e-3 # то же, что и 4.2 * 10 ** (-3) == 4.2 * 0.001 0.0042 

Конструкция float(x) принимает строку или целое число и возвращает число с плавающей точкой, т.е. объект типа float . Примеры:

>>> float("1.2") 1.2 >>> float(42) 42.0 >>> float("42e3") 42000.0 

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

pi = 3.1415 print(pi) print(f"pi = pi>") 

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

pi = 3.1415 print(f"pi = pi:.3f>") print(f"pi = pi:.4f>") 

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

>>> int(42.9) 42 

Для решения вычислительных задач может быть полезен модуль math из стандартной библиотеки языка Python. Для его использования нужно написать строку import math . Для решения задач нам понадобятся число \(\pi\) и функция извлечения квадратного корня. Примеры их использования:

import math print(f"pi = math.pi>") r = math.sqrt(4) print(f"square root of 4 = r>") 

Задачи¶

  1. Дан диаметр окружности \(d\) . Найти ее длину по формуле \(length = \pi \cdot d\) .
  2. Дано значение температуры \(t\_f\) в градусах Фаренгейта. Определить значение этой же температуры в градусах Цельсия. Температура по Цельсию \(t\_c\) и температура по Фаренгейту \(t\_f\) связаны следующим соотношением:

\[t\_c = (t\_f — 32) \cdot \frac \]
\[ \begin \beginc = \sqrt\\p = a + b + c\end\end \]

© Copyright Revision d00c0df4 .

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest

Versions latest Downloads html On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *