Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.22;
Скачать: CL | DM;

Вниз

Как мне округлить значение до сотых???   Найти похожие ветки 

 
Relaxxx ©   (2003-08-27 16:52) [0]

Как мне округлить значение до сотых???
заранее спасибо


 
Jeer ©   (2003-08-27 18:30) [1]

такое возможно только в визуальном представлении.
Str(..)


 
Nikky ©   (2003-08-27 18:38) [2]

var value: double

value := round (value*100)/100


 
paul_k ©   (2003-08-27 19:37) [3]

дельфа странно округляет.Подробнее об этом в хелпе написано. Поэтому round подходит
Приходится отдельную функцию писать
сравниваеш 0,5 с x*100-trunc(x*100)
если больше то result = trunc(x*100)/100
иначе result = (trunc(x*100)+1)/100


 
Nikky ©   (2003-08-27 19:43) [4]


> paul_k © (27.08.03 19:37) [3]


бред


 
Тих   (2003-08-27 19:48) [5]

Сравнивать оператором "=" опасно. Потому при работе с БД советуют
1) Использовать тип Currency, money и т.п.
2) или decimal
3) или конвертировать в строку
Format(".%3f", [Value]) и сравнивать строки.


 
paul_k ©   (2003-08-27 19:54) [6]

Nikky
Бред это то что Вы написали.
согласно правилам округления дельфы
44,5=44
45,5=46

для проверки выполните код
showmessage(inttostr( round(44.5)));
showmessage(inttostr( round(45.5)));


 
Nikky ©   (2003-08-27 20:26) [7]


> paul_k © (27.08.03 19:54) [6]
> 44,5=44
> 45,5=46


а как по-вашему он должен работать? 44,5=45? есть же международные стандарты, и round им соответсвует


 
sniknik ©   (2003-08-27 20:31) [8]

просто рассадник предрассудков :о)))
округление до любого знака RoundTo (правда сама функция производная от Round)
установка математического округления и не только Set8087CW (правда значение которое нужно установить не помню :о)), но если никто его не подскажет, то завтра запостчу (на работе записано))


 
sniknik ©   (2003-08-27 20:32) [9]

Nikky © (27.08.03 20:26) [7]
> есть же международные стандарты, и round им соответсвует
по умолчанию бугалтерское округление. проверь.


 
Nikky ©   (2003-08-27 20:39) [10]


> sniknik © (27.08.03 20:32) [9]


> sniknik © (27.08.03 20:31) [8]


F1, выдаваемый за ученость?


 
sniknik ©   (2003-08-27 20:54) [11]

Nikky © (27.08.03 20:39) [10]
ну а почему бы и нет? кстати раз такой умный может положиш сюда значение Set8087CW(?) которое я не помню, переводящее на математическое округление.
пусть все пользуются.

(еще кстати, себя таким не считаю и F1 пользуюсь весьма активно)


 
sniknik ©   (2003-08-27 21:00) [12]

хотя ладно здесь на форуме нашол (хорошо всетаки поиск стал работать)
http://delphimaster.net/view/15-1060756297/

обратить особое внимание на DiamondShark © (13.08.03 17:38) [30]


 
paul_k ©   (2003-08-28 16:04) [13]

2 sniknik ©

Простите за совсем идиотский вопрос, а устанавливать Set8087CW() необходимо каждый раз, или достаточно при запуске программы?


 
sniknik ©   (2003-08-28 16:34) [14]

наверное лутше каждый раз (точно не скажу, но может кто добавит чего), его же кроме тебя еще могут использовать (бугалтера разные и игрушки (графика) :-)).
я бы точно поставил прямо перед вычислениями (если б понадобилось), да и там всего пара асемблерных команд на скорость не повлияет.


 
paul_k ©   (2003-08-29 10:24) [15]

Спасибо за совет...
значиччи просто функцию врисовать придется)
типа
function ArRoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;
begin
Set8087CW($1B72);
result:=ROundTo(AValue,ADigit)
end;

function BuhgRoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;
begin
Set8087CW($1372);
result:=ROundTo(AValue,ADigit)
end;

и юзать то что необходимо. я правильно понял?


 
Anatoly Podgoretsky ©   (2003-08-29 10:38) [16]

Хорошо, но надо сохранять старый Default8087CW и потом восстанавливать, иначе могут быть трудно уловимые глюки.



Страницы: 1 вся ветка

Текущий архив: 2003.09.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.034 c
14-71870
Jacob
2003-09-04 13:17
2003.09.22
Расписание авиарейсов


14-71913
mfender
2003-09-03 02:38
2003.09.22
Подскажите, как The Bat сделать, чтобы он дефолтом запускался?


1-71688
oomneeq
2003-09-10 16:27
2003.09.22
VarArrayCreate - массив массивов?


3-71558
NiBL'S
2003-08-28 17:26
2003.09.22
В DBgrid e не отображаются все записи таблицы.


6-71812
leonidus
2003-07-17 00:43
2003.09.22
Подвисание программы при использовании NMHTTP.GET