Фиксированное количество знаков после запятой в 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(‘<:.3f>‘.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 отбросить k знаков после запятой?
Здравствуйте, вопрос следующий.
Допустим, есть число 17.212123445.
А нужно записать в память только первую цифру после запятой. Каким образом сделать это при помощи вещественных и целочисленных операций?
- Вопрос задан более трёх лет назад
- 151952 просмотра
1 комментарий
Простой 1 комментарий
Попробуйте через ф-ию round(укажите сколько значков после запятой надо вывести)
>>>a=5.4323321
>>>a.__round__(2)
5.43
>>>a
5.4323321
>>>a.__round__(4)
5.4323
Решения вопроса 1
ненавижу javascript
>>> a=13.946 >>> print(a) 13.946 >>> print("%.2f" % a) 13.95
Ответ написан более трёх лет назад
Нравится 15 10 комментариев
Timebird @Timebird Автор вопроса
Не совсем, тем не менее, спасибо за ответ, это я некорректно вопрос сформулировал, видимо.
Нужно не выводить на печать последние две цифры, а хранить в памяти число с двумя последними цифрами
ну не вопрос допишите b = float(«%.2f» % a)
Timebird @Timebird Автор вопроса
Спасибо, работает. 🙂
Timebird: Ты только не делай так. Для таких случаев есть Decimal.
Roman Kitaev: это норм способ, decimal тянуть для такой задачи оверхед)
Михаил: Ты не знаешь ведь задачу) Вдруг, он там деньги считает?
О_о вместо того чтоб воспользоваться хотя бы функцией round для округления до нужной точности, вы серьёзно предлагаете сначала преобразовать в строку а потом обратно в число?
Roman Kitaev: тогда мой вариант может стать причиной того что баланс не сойдется))
Артём Клименко: да мне похеру, я могу и scipy зафигачить чтоб число округлить, и да, я предлогаю именно это, потому что это самый что ни на есть стандартнейший способ, быстро сделать то что в ввопросе описано, и при этом следующий прогер который будет это читать сразу поймет о чем речь. а не будет ебсти себе мозг чо там у нас раунд возвращает, да и приведение в строку и обрато способ куда шустрей по ресурсам)
Михаил: round — стандартная bult-in функция, существующая для выполнения конкретной задачи, именно она и является стандартным способом, впрочем, таки да, вы не обязаны со мной соглашаться, но указанный вами способ вызывает у меня стойкое чувство жжения в районе поясницы.
З.Ы. if len(str(bool(a))) == 4:
Как оставить несколько знаков после запятой, а остальные отбросить?
Несколько сотен знаков после запятой у числа ПИ
Добрый день! Несколько дней пролшло с начала работы в Matlab. Предложили реализовать процедуру.
Как отбросить лишние знаки после запятой внутри формулы
Здравствуйте! В общем нужно отбросить лишние знаки после запятой после вычислений, но через.
Отбросить знаки после запятой
есть код: import numpy a = numpy.random.uniform(-80, 100, size=(10,10)) print(a) b, c = , .
Как ограничить количество вводимых знаков в Edit после запятой, не ограничивая количество до запятой?
Доброго времени суток! Подскажите как реализовать так, чтобы после ввода в поле Edit запятой.
814 / 526 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
1 2 3 4 5 6 7 8 9 10
n=4.3576 n=str(n) dot=n.index('.') print(f'Число обработанное' ) #либо n=4.3576 rnd=lambda n,koef:(n*(10**koef)//1)/10**koef print(f'Число обработанное ')
1007 / 351 / 59
Регистрация: 28.02.2013
Сообщений: 931
1 2 3
>>> round(2.65, 1) 2.6 >>>
попробуйте функцию round.
А сорри вам же надо без округления. тогда round и не подойдет.
Просто Лис
5318 / 3332 / 1021
Регистрация: 17.05.2012
Сообщений: 9,765
Записей в блоге: 9
>>> ('%.3f' % 4.3576)[:-1] '4.35'
Обычно так не делают.
-118 / 92 / 13
Регистрация: 26.06.2013
Сообщений: 4,529
Как Вы привели пример, так не делают или вообще так не отбрасывают цифры?
Просто Лис
5318 / 3332 / 1021
Регистрация: 17.05.2012
Сообщений: 9,765
Записей в блоге: 9
Не могу придумать пример, когда может потребоваться откинуть значащие цифры в числе, а не округлить. Даже ‘%.2f’ % n , что в привели, оказывается округляет.
Добавлено через 28 секунд
откинуть значащие цифры = значит, потерять в точности. Нет смысла.
Регистрация: 02.12.2022
Сообщений: 92
x = format(float(n), ‘.2f’)
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Отбросить знаки после запятой до двух разрядов
Убрать лишние знаки после запятой, не визуализацию в ячейке, а вообще их откинуть.. 1.999 >> 1.9
Как ограничить количество знаков после запятой, не ограничивая количество до запятой?
Как ограничить количество знаков после запятой, не ограничивая количество до запятой? Если, к.
Отбросить знаки после запятой и вывести в ячейку Excel
ActiveCell.Value = Round(zenazaod, 2) MsgBox (Round(zenazaod, 2)) Первая строка должна вывести.
Visual Basic 2013 сложение чисел, округление до 2 знаков после запятой, отбрасывание знаков
Как сложить несколько чисел из TextBox, округлить их, отбросить знаки после запятой? показать.
Как ограничить число знаков после запятой?
надо ограничить число знаков до 4-х после запятой. В x. вот программа, а вівод x конечно в конце: .
Как ограничить количество знаков после запятой?
возникли сложности в том что в ответе в форме Picture4.Print arifmeticheskoe_index не знаю как.
Округление чисел и его особенности
Округлением чисел в Python занимается встроенная функция round.
round(number[, ndigits]) — округляет число number до ndigits знаков после запятой (по умолчанию, до нуля знаков, то есть, до ближайшего целого)
Со школы многие привыкли, что, когда (N + 1) знак = 5, а последующие знаки равны нулю, округление производится всегда в большую по модулю сторону.
Однако, как видно из примеров, в Python это не так. Здесь используется так называемое "Банковское округление", то есть округление к ближайшему чётному.
На практике это оказывается не так уж и важно, например:
Что-то не так, правда? На самом деле, всё именно так, как и задумывалось. Просто из-за проблем с точностью чисел с плавающей точкой это число чуть больше, чем 2.85, а потому округляется до 2.9.
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте