Авторизация

Логин: Пароль:
Регистрация Забыли свой пароль?

Округление

Страницы: 1
Округление
Подскажите, если кто знает, как можно округлить число до скажем 0,001
Например так
Код
writeln(x:0:3);

Цифра три означает количество знаков после запятой
Мне нужно не вывести число, а округлить его.
Изменено: Sergeiv - 10.02.2010 00:30:10
Зачем? Вы сначала сделайте все вычисления,а потом уже выведите округленное значение, так точнее будет.
Вот так
Код
b:=round(a*1000);
a:=b/1000;
writeln(a:5:3);
Но round же округляет до целого
Правильно, именно поэтому я потом разделил на 1000
Хорошо, я объясню, что мне нужно. Я хочу сравнить два числа. Если я их сравниваю без округления, то у меня получается они неравными,а на самом деле это не так. Если я сначала округлю,а потом сновы поделю у меня же опять ничего не получиться.
Нет, все будет нормально. Вы округляйте оба числа и сравнивайте их.
В этом случаи вам лучше найти разницу между числами и сравнивать его с константой (допустимой погрешностью)
Изменено: Дмитрий Бороздин - 10.02.2010 01:13:50
То есть так
Код
if (a-b)<0.001 then
Не совсем, у вас будет ошибка. Например
a=1,445 и b=1,444 разница 0,001
a=1,445 и b=1,446 разница -0,001
В первом случаи условие не будет выполнена, а во втором будет.
Николай прав. Чтобы этого избежать делайте так
Код
if abs(a-b)<0.001 then
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)