Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.018 c
1-71731
Марат
2003-09-10 14:04
2003.09.22
Календарь


7-71962
evg12
2003-06-28 05:15
2003.09.22
Серийный номер HDD


1-71599
mrcat
2003-09-09 14:49
2003.09.22
Манифест XP vs. TListView.OwnerDraw


6-71804
АСМиД
2003-07-09 14:37
2003.09.22
Почему ServerSocket не держит более примерно 10 клиентов


14-71893
freeman2003
2003-09-03 16:30
2003.09.22
Не выполняется хранимая процедура на SQL server из delphi




   Наверх