Ruby: Как округлить float до двух знаков после запятой
Округлить число с плавающей точкой до целого числа в руби можно с помощью метода round:
> a = 25.125 => 25.125 > a.round => 25
Этому методу в качестве параметра можно передать число знаков после запятой, которое необходимо оставить:
> a.round(2) => 25.13
Округлить до ближайшего большего целого числа можно с помощью ceil (этот метод также принимает на вход параметр):
> a.ceil => 26 > a.ceil(1) => 25.2
А до ближайшего меньшего числа — методом floor:
> a.floor => 25 > a.floor(2) => 25.12
Python: как вывести число типа float с определенным количеством знаков после запятой
Там есть много опций, для форматирования вывода, можно подробнее почитать в документации.
В вашем случае нужно в функции выводить в print не числа, а строку с форматированием, например:
>>> def vol(rad): . print(" cm^3".format(4/3*3.141592*rad**3)) >>> vol(5) 523.60 cm^3
Еще интересные способы форматирования есть на enSO. Там немного другой вывод хотел получить автор, но можно подглядеть именно способ.
Переменная float — знаки после запятой
Итак я задаю какую-либо переменную типа float.
Потом, с помощью scanf кладу в эту переменную значение 3.2 (к примеру.)
Затем, с помощью printf(«%f»,peremennaya); вывожу ее на экран.
Как мне сделать так, чтобы выводилось именно 3.2, а не 3.20000.
И чтобы если я вводил 3, то и выводилось 3, а не 3.00000. но, одновременно при вводу 3.123, выводилось 3.123, а не 3.12300.
Короче мне надо, чтобы переменные float выводились именно с таким кол-вом знаков после запятой, которые есть в переменной.
Если что — среда Visual Studio 2010 Beta 2.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
знаки после запятой , формат float
я вот что делаю: float i = *(float*)0x0000000; приравниваю значение адреса в формате флоат.
знаки после запятой
Здравствуйте, простой вопрос на который я никак не могу найти ответ. Почему после компиляции.

Знаки после запятой C++
Можно ли в C++ как-то получить в результате число, в котором выводится полностью больше 6 символов.
Табуляция и знаки после запятой
Здравствуйте, помогите пожалуйста. Как сделать так, чтоб программа выводила данные в нормальном.
Знаки после запятой
Добрый день!
Можно ли контролировать количество знаков после запятой в типе double? Т.е. существует операция вычесления, после которой образуется остаток от деления, с большим количеством знаков после запятой. Могу ли я, в данной ситуации, не округляя, а просто беря нужное мне количество выполнять операции дальше?
Пример кода:
1 2 3 4 5 6 7 8
#include int main() { double a = 10/7; // результатом будет 1.42857143 // однако мне хотелось бы видеть 1.42 return 0; }
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
знаки после запятой
Здравствуйте, простой вопрос на который я никак не могу найти ответ. Почему после компиляции.

Знаки после запятой C++
Можно ли в C++ как-то получить в результате число, в котором выводится полностью больше 6 символов.
Табуляция и знаки после запятой
Здравствуйте, помогите пожалуйста. Как сделать так, чтоб программа выводила данные в нормальном.
Переменная float — знаки после запятой
Итак я задаю какую-либо переменную типа float. Потом, с помощью scanf кладу в эту переменную.
![]()
![]()
5097 / 2777 / 1462
Регистрация: 14.12.2018
Сообщений: 5,116
Записей в блоге: 1

Сообщение было отмечено Hou5ton как решение
Решение
Сообщение от Hou5ton 
#include
int main()
double a = 10/7; // результатом будет 1.42857143
// однако мне хотелось бы видеть 1.42
return 0;
>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include #include using namespace std; double fPre(double a, int n) { return int(a * pow(10.0, n)) / pow(10.0, n); } int main() { double a = 10.0 / 7; // 1.42857143 cout fPre(a, 2) endl; // 1.42 cout fPre(a, 3) endl; // 1.428 return 0; system("pause"); return 0; }
429 / 312 / 129
Регистрация: 09.02.2021
Сообщений: 1,096
Записей в блоге: 1
1 2 3 4 5 6 7 8
#include using namespace std; int main() { cout.precision(3); cout double(10.0 / 7.0); return 0; }
Пробуйте с етим
cout.precision(3);
![]()
![]()
5097 / 2777 / 1462
Регистрация: 14.12.2018
Сообщений: 5,116
Записей в блоге: 1
Сообщение от matviiv 
Пробуйте с етим
![]()
![]()
11126 / 6084 / 1663
Регистрация: 18.10.2014
Сообщений: 15,294
Сообщение от Hou5ton 
Можно ли контролировать количество знаков после запятой в типе double?
Сообщение от Hou5ton 
Т.е. существует операция вычесления, после которой образуется остаток от деления, с большим количеством знаков после запятой.
Готовой — не существует. Можете попробовать написать такую руками, но тип double для таких задач подходит плохо.
Сообщение от Hou5ton 
// однако мне хотелось бы видеть 1.42
«Видеть»? Так может вам не нужно душить знаки прямо в вычислениях, а урезать их при выводе результата?
Еще раз: что именно вам нужно? Округленные вычисления? Или округленный вывод результата?
429 / 312 / 129
Регистрация: 09.02.2021
Сообщений: 1,096
Записей в блоге: 1
Volga_, вопшето 1.43, округлило
![]()
![]()
5097 / 2777 / 1462
Регистрация: 14.12.2018
Сообщений: 5,116
Записей в блоге: 1
Сообщение от matviiv 
1.43, округлило
Он не хочет округлить число, только резать число.
429 / 312 / 129
Регистрация: 09.02.2021
Сообщений: 1,096
Записей в блоге: 1
Volga_, а ну тогда ваш код,ну ничего страшного ж,я просто ответил на ваше 1.423
Регистрация: 06.05.2020
Сообщений: 27
Сообщение от Volga_ 
return int(a * pow(10.0, n)) / pow(10.0, n);
Да это решение мне действительно помогло, способ исключительно математический. Спасибо.
Добавлено через 10 минут
Сообщение от TheCalligrapher 
«Видеть»? Так может вам не нужно душить знаки прямо в вычислениях, а урезать их при выводе результата?
Еще раз: что именно вам нужно? Округленные вычисления? Или округленный вывод результата?
Спаибо за ответ.
Я создаю программу по вычеслению радиуса разворота для самолета, и в формуле его нахождения присутствует тангегенс.
Который выдает огромные значения после запятой, что является плюсом, но существует прибор на основе логарифмической линейки (НЛ-10м), который делает расчеты не такими точными, приблизительным (разница от 10-100метров), однако им пользуются сплошь и рядом в ациации.
Мне необходимо сделать вычесления не только на основании точности, который дает тангенс, но и приблизителный который дает линейка, чтобы показать разницу.
Сообщение от Volga_ 