Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2009, 01:58   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Как округлить Extended

Round не пашет =\
В хелпе написано мол он от extended'a работает, а делфи пишет, что от real'a. И при прохождении через функцию пишет Invakid Floating point operation
TwiX вне форума Ответить с цитированием
Старый 02.11.2009, 02:09   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

И RoundTo не пашет? И Trunc ?
Тогда ппц...
Сливай воду...
mihali4 вне форума Ответить с цитированием
Старый 02.11.2009, 02:10   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

МММ... RountTo возвращает extended, а trunc - тупо обрубает хвост =\
TwiX вне форума Ответить с цитированием
Старый 02.11.2009, 02:17   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

trunc(Extended+0.5);
вот и округление. математику вспоминаем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.11.2009, 02:20   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
trunc(Extended+0.5);
вот и округление. математику вспоминаем.
Работает только для положительных чисел. Повторяем математику
Лень самому Round писать... Почему не округляются раундом extended?
TwiX вне форума Ответить с цитированием
Старый 02.11.2009, 02:25   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

для отрицательных -0,5
написать свою функу то просто...

Код:
var e:Extended;
begin
 e:=1231.45646456464;
 ShowMessage(IntToStr(Round(e)));
end;
отменно работает..
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 02.11.2009 в 02:28.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.11.2009, 02:28   #7
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Попробовал транк... Тоже ошибка =\
Просмотрел код - увидел, что вместо
a[0]:=1;
a[1]:=2;
написал
a[0]:=1;
a[0]:=2;
xD
Проблема решена )
TwiX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как округлить числа во всём столбце(2500 ячеек)? Danatos Microsoft Office Excel 13 15.02.2011 06:08
типы данных extended guffer Общие вопросы Delphi 2 01.11.2009 15:20
округлить до olimpus Microsoft Office Excel 6 25.08.2009 13:45
Как округлить число до сотых в Edit xxxsas Общие вопросы C/C++ 3 25.01.2009 09:04
Integer and Extended,в чем дело? Ciberal Общие вопросы Delphi 3 31.10.2008 19:06