Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.013 c
1-71744
AlexanderSK
2003-09-10 12:25
2003.09.22
Ссылка на класс?


3-71491
peter_login
2003-09-01 14:36
2003.09.22
Компонет для работы с полем БД типа tdatetime


6-71800
Zhker
2003-07-20 03:45
2003.09.22
Как открыть ссылку в новом окне броузера ?


1-71639
Kremen
2003-09-11 15:33
2003.09.22
Преобразование Char в Integer


1-71661
AlexVM
2003-09-11 11:42
2003.09.22
Хранение форм в базе данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский