Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как написать программу округляющую числа?

в2000 ф2000 Мастер (1853), закрыт 6 лет назад
Помогите, как округлить числа не используя встроенные функции типа round, trunc и т. д. Желательно на Pascal, ну или на языке на котором сможете.
Дополнен 6 лет назад
Ну ещё желательно чтобы можно было бы округлять там до десятых, до сотых...
Лучший ответ
Иван Сигаев Искусственный Интеллект (150190) 6 лет назад
Примерно так
double round(double a, int b)
{
if(!b)return a;
if(b>0){
for(int i=0;i<=b;i++)a*=10;
}else{
for(int i=1;i<-b;i++)a/=10;
}
if(long(a)%10>4)a++;
if(b>0){
for(int i=0;i<=b;i++)a/=10;
}else{
for(int i=1;i<-b;i++)a*=10;
return a;
}
}
в2000 ф2000Мастер (1853) 6 лет назад
Извините, но в вашей программе ничего не происходит (кроме как прибавить 1 к числу)
Иван Сигаев Искусственный Интеллект (150190) а так? https://ideone.com/1PTHi0
Остальные ответы
Неправильный кошак Профи (952) 6 лет назад
Если число в real формате, то достаточно после наименования переменной написать пару символов еще. Например write(x:8:2);
Nazar Melnyk Знаток (292) 6 лет назад
write(a:1:1); - до десятих
write(a:1:2); - до сотих
write(a:1:3); - до тисячних
и тд....
в2000 ф2000Мастер (1853) 6 лет назад
А я просил программу. Ну как сделать это самому. И не как вывести число, а как получить его.
Nazar Melnyk Знаток (292) если не использовать функции то в паскале округлить можна только при виводе Program Round; var a:double; begin a:=12.3692868459; writeln(a:1:1); writeln(a:1:2); writeln(a:1:3); writeln(a:1:4); writeln(a:1:5); end. 12.4 12.37 12.369 12.3693 12.36929
Похожие вопросы