Python: как вывести число типа float с определенным количеством знаков после запятой
Там есть много опций, для форматирования вывода, можно подробнее почитать в документации.
В вашем случае нужно в функции выводить в print не числа, а строку с форматированием, например:
>>> def vol(rad): . print(" cm^3".format(4/3*3.141592*rad**3)) >>> vol(5) 523.60 cm^3
Еще интересные способы форматирования есть на enSO. Там немного другой вывод хотел получить автор, но можно подглядеть именно способ.
Можно ли в Python во float отбросить k знаков после запятой?
Здравствуйте, вопрос следующий.
Допустим, есть число 17.212123445.
А нужно записать в память только первую цифру после запятой. Каким образом сделать это при помощи вещественных и целочисленных операций?
- Вопрос задан более трёх лет назад
- 155423 просмотра
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:
как ограничить число знаков после запятой в типе float (Си)?
Тип float всегда с одним и тем же количество знаков. А выводить на экран можно с любым количеством знаков и в любом формате — это зависит от того, какой функцией выводить, у каждой свои параметры.
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Как округлить число до 2 знаков js
Для округления десятичных чисел дофиксированного количества знаков после запятой в JS используется метод toFixed() . В качестве параметра метод принимает количество знаков, до которого нужно округлить. Если в исходном числе будет меньше знаков, то недостающие знаки заменятся нулями.
const pi = 3.14159265359; console.log(pi.toFixed(2)); // => 3.14 const num = 4; console.log(num.toFixed(2)); // => 4.00
22 декабря 2022
Хмм. Думаю тут есть неточность (или для js и так сойдет ?). В вопросе округление числа, но метод toFixed возвращает строку, как быть в таком случае, typescript неоценит такое округление.
18 октября 2022
Для округления десятичных чисел до фиксированного количества знаков после запятой в JavaScript используется метод toFixed() . В качестве параметра метод принимает количество знаков, до которого нужно округлить. Если в исходном числе будет меньше знаков, то недостающие знаки заменятся нулями.
3.14 const num = 4; console.log(num.toFixed(2)); // => 4.00
31 августа 2023
Спасибо за пример, у меня задача была получить два случайных числа в диапазоне и округлить до введёного знака после запятой
24 июля 2023
const pi = 3.14159265359; console.log(typeof Number(pi.toFixed(2)); // => «number»
26 февраля 2024
Я использовал Math.round, потому что с .toFixed далее по коду были проблемы. Полученное значение нельзя было добавить к общей сумме и собственно .toFixed ругался.
Вот такое число записывалось в переменную при totalKm = 12: 03.60. Видимо этот 0 впереди ломает работу .toFixed
Math.round(totalKm * 0.3 * 100) / 100;
Если использовать personalCarCosts = (totalKm * 0.3).toFixed(2); ниже по коду получал ошибку
totalCosts = totalMealsCost + totalTravelCosts + totalAccommodationCosts + totalAdditionalCosts + personalCarCosts;
Uncaught TypeError: totalCosts.toFixed is not a function
С Math.round проходит без проблем.