Другие языки программирования и технологии
Как в паскале убрать у числа определенно количество знаков после запятой?
Например дается число 1.72921321, нужно преобразовать его в 1.729
program ideone;
var
a : Real;
begin
a := 112.72921321;
writeln(a:0:3);
end.
Выведет 112.729 но вычислять будет с большей точностью
var
a : Real;
begin
a := 112.72921321;
writeln(a:0:3);
end.
Выведет 112.729 но вычислять будет с большей точностью
Андрей Тарбеев
По сути вопроса надо именно убрать знаки, а не вывести без этих знаков. Ваш ответ частично не верен.
умножить на 1000, округлить до целого, разделить на 1000
Частенько возникает вопрос, как же число в таком формате 5.1100000000E+01 преобразовать более в читабельный вид. А именно, указать количество знаков после запятой. На самом деле в pascalэто делается довольно легко. Не слушайте никого, кто будет предлагать методы через divи mod.
В паскале существует довольно таки простое решение в работе с вещественными числами:
<переменная>:<число знаков целой части>:<число знаков после запятой>
В коде паскаля это будет выглядеть так:
var number :Real;
begin
writeln('Введите четное число ');
Readln(number);
number:=number/3;
writeln('2 знакапосле запятой в pascal - number = ', number:0:2);
writeln('3 знака после запятой в pascal - number = ', number:0:3);
writeln('4 знака после запятой в pascal - number = ', number:0:4);
writeln('5 знако впосле запятой в pascal - number = ', number:0:5);
end.
Результатом данной программы будет:
Введите четное число
10
number = 3.33333333333333
2 знака после запятой в pascal - number = 3.33
3 знака после запятой в pascal - number = 3.333
4 знака после запятой в pascal - number = 3.3333
5 знаков после запятой в pascal - number = 3.33333
Метод работает, если производить математические операции прямо во writeln. Он возьмет полученное значение и будет работать с ним:
var number :Real;
begin
writeln('Введите четное число ');
Readln(number);
number:=number/3;
writeln('number = ', number);
writeln('2 знака после запятой в pascal - number = ', number+number:0:2);
writeln('3 знака после запятой в pascal - number = ', number+number:0:3);
writeln('4 знака после запятой в pascal - number = ', number+number:0:4);
writeln('5 знаков после запятой в pascal - number = ', number+number:0:5);
end.
Результатом алгоритма будет следующим:
Введите четное число
20
number = 6.66666666666667
2 знака после запятой в pascal - number = 13.33
3 знака после запятой в pascal - number = 13.333
4 знака после запятой в pascal - number = 13.3333
5 знаков после запятой в pascal - number = 13.33333
Преобразуем наш код, чтобы пользователь сам решал, сколько ему необходимо знаков после запятой в вещественных числах. Для этого введем переменную n:
var number:Real;
n:integer;
begin
writeln('Введите четное число ');
Readln(number);
writeln('Введите количество знаков после запятой ');
Readln(n);
number:=number/3;
writeln('number = ', number);
writeln('n = ', n);
writeln(n,' знака (ов) послез апятой в pascal - number = ', number+number:0:n);
end.
Результат:
Введите четное число
16
Введите количество знаков после запятой
4
number = 5.33333333333333
n = 4
4 знака (ов) после запятой в pascal - number = 10.6667
В паскале существует довольно таки простое решение в работе с вещественными числами:
<переменная>:<число знаков целой части>:<число знаков после запятой>
В коде паскаля это будет выглядеть так:
var number :Real;
begin
writeln('Введите четное число ');
Readln(number);
number:=number/3;
writeln('2 знакапосле запятой в pascal - number = ', number:0:2);
writeln('3 знака после запятой в pascal - number = ', number:0:3);
writeln('4 знака после запятой в pascal - number = ', number:0:4);
writeln('5 знако впосле запятой в pascal - number = ', number:0:5);
end.
Результатом данной программы будет:
Введите четное число
10
number = 3.33333333333333
2 знака после запятой в pascal - number = 3.33
3 знака после запятой в pascal - number = 3.333
4 знака после запятой в pascal - number = 3.3333
5 знаков после запятой в pascal - number = 3.33333
Метод работает, если производить математические операции прямо во writeln. Он возьмет полученное значение и будет работать с ним:
var number :Real;
begin
writeln('Введите четное число ');
Readln(number);
number:=number/3;
writeln('number = ', number);
writeln('2 знака после запятой в pascal - number = ', number+number:0:2);
writeln('3 знака после запятой в pascal - number = ', number+number:0:3);
writeln('4 знака после запятой в pascal - number = ', number+number:0:4);
writeln('5 знаков после запятой в pascal - number = ', number+number:0:5);
end.
Результатом алгоритма будет следующим:
Введите четное число
20
number = 6.66666666666667
2 знака после запятой в pascal - number = 13.33
3 знака после запятой в pascal - number = 13.333
4 знака после запятой в pascal - number = 13.3333
5 знаков после запятой в pascal - number = 13.33333
Преобразуем наш код, чтобы пользователь сам решал, сколько ему необходимо знаков после запятой в вещественных числах. Для этого введем переменную n:
var number:Real;
n:integer;
begin
writeln('Введите четное число ');
Readln(number);
writeln('Введите количество знаков после запятой ');
Readln(n);
number:=number/3;
writeln('number = ', number);
writeln('n = ', n);
writeln(n,' знака (ов) послез апятой в pascal - number = ', number+number:0:n);
end.
Результат:
Введите четное число
16
Введите количество знаков после запятой
4
number = 5.33333333333333
n = 4
4 знака (ов) после запятой в pascal - number = 10.6667
Похожие вопросы
- Какая функция определяет количество знаков после запятой переменной double?
- Узнать сколько знаков после запятой в числе? Visual Basic
- В последовательности целых чисел найдите минимальное число и количество его повторений. Паскаль, помогите!
- Я выучил первые 1000 знаков после запятой числа Пи. Я великий и всемогущий?
- C# Как сформулировать понятие "дробь"(число с количеством после запятой) и добавить его в исключение?
- Дано натуральное число. Определить количество его цифр, кратных z. Написать в Паскаль
- Вопрос по информатике. Почему точность вычислений в С определяется только 16 знаком после запятой и почему именно 16?
- Паскаль. Почему перед Else нельзя ставить точку с запятой?
- Помогите решить на ПАСКАЛЕ!Увеличить четные числа массива размера N,на исходное значение первого четного числа.
- паскаль - Дано натуральное число п. Переставить его цифры так, чтобы образовалось наименьшее число