Можно ли в Python во float отбросить k знаков после запятой?
Здравствуйте, вопрос следующий.
Допустим, есть число 17.212123445.
А нужно записать в память только первую цифру после запятой. Каким образом сделать это при помощи вещественных и целочисленных операций?
- Вопрос задан более трёх лет назад
- 153449 просмотров
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:
Как заставить Python выводить нужное количество знаков после запятой?
Мне нужно, что бы программа выводила иррациональное число n, до определённого количества знаков.
Только пожалуйста, объясните по конкретней, а то я тот еще чайник, и просто пытаюсь скопировать и вставить в прогу, надеясь, что она заработает -_-
Голосование за лучший ответ
def toFixed(num, digits=0):
return f»f>»
x = 2 ** 0.5
print(toFixed(x, 25))
ps. Функция возвращает строку. Чтобы производить с ним в дальнейшем операции, его нужен превратить в float, хотя тогда число уменьшиться в кол-ве знаков
n = 3.141592653589793238462643
print(round(n, 2))
второй аргумент в round — количество знаков после запятой
Как ограничить количество знаков после запятой java
Также можно воспользоваться методом format() класса String :
double x = 0.33333; String s = String.format("%.2f", x); // округляем x до 2-х знаков после запятой System.out.println(s); // => 0,33
Как ограничить количество знаков после запятой в python



Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required