[ ribar2006 @ 12.01.2007. 15:39 ] @
| Pozdrav
imam sledeci problem, naime Delphi mi ne zaokruzuje pravilno brojeve na dvije decimale kako bi trebao vec kako on hoce :)
Vec sam se sretao ranije sa ovim problemom i resio sam ga pomocu komponente DecimalRounding_JH1 i to je funkcionisalo OK na jednom racunar medjutim prenjeo sam aplikaciju na drugi racunar i zaokruzivanje ne radi ????
Pokusao sam da pokrenem delphi i da ponovo kompajliram kod sa naravno ukljucenom komponentom u IDE ali ne radi ??????
Koristim D5.
Sta je u pitanju.
Hvala svima
|
[ de_c0der @ 12.01.2007. 16:54 ] @
Code:
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils;
var r:real;
zaokruzen:string;
begin
{ TODO -oUser -cConsole Main : Insert code here }
r:=1.2353;
Str(r:1:2,zaokruzen);
//zaokruzen sada iznosi 1.24
//za daljnje racunanje s njim i sa real tipovima
//konvertiraj taj string u real i tako u krug
WriteLn(zaokruzen);
ReadLn;
end.
[ ribar2006 @ 13.01.2007. 11:21 ] @
Pozdrav
pokusao sam sa ovim sto si napisao to je ok ali meni treba nesto jednostavnije posto imam ogroman broj podataka u bazi da ne bih morao rucno da svaki preracunavam postoji li kakva komponenta?
ili mozda da ovo iskoristim da odradjuje automatski ali ne znam kako
Hvala
[ IDE @ 14.01.2007. 23:23 ] @
imas FormatFloat("0.00",broj_koji_zaokruzujes) (ovo bar ima u BCB, pa bi trebalo i u Delphi-ju)
ali pazi: FormatFloat vraca String, a ne float, pa ga prebaci samo sa StrToFloat() ako ti broj treba na kraju...
[ savkic @ 15.01.2007. 02:30 ] @
> imas FormatFloat("0.00",broj_koji_zaokruzujes) (ovo bar ima u BCB, pa bi trebalo i u Delphi-ju)
> ali pazi: FormatFloat vraca String, a ne float, pa ga prebaci samo sa StrToFloat() ako ti broj treba na kraju...
Zašto komplikovati? Round, RoundTo i SimpleRoundTo.
[ de_c0der @ 15.01.2007. 08:51 ] @
Citat:
savkic:
Zašto komplikovati? Round, RoundTo i SimpleRoundTo.
Te funkcije u vecini slucajeva ne rade posao kako treba, googlaj malo pa ces nac i zasto!
Citat:
ribar2006: Pozdrav
pokusao sam sa ovim sto si napisao to je ok ali meni treba nesto jednostavnije posto imam ogroman broj podataka u bazi da ne bih morao rucno da svaki preracunavam postoji li kakva komponenta?
ili mozda da ovo iskoristim da odradjuje automatski ali ne znam kako
Pazi, lijepo napisi funkciju koja ce to radit znaci ZaokruziNaDvijeDecimale(broj_koji_treba_zaokruziti:real):real;
I samo nju pozivas, a u funkciju stavis kod koji ce pretvorit to prvo u string i onda iz stringa u float/real...nemas sta tu mudrovat
[ Srki_82 @ 15.01.2007. 09:12 ] @
Round funkcije rade bas kako treba i mnogo su brze od pretvaranja broja u string, formatiranja stringa i, na kraju, vracanja stringa u broj. Ako ti se Round funkcije koje Delphi ima ne svidjaju, onda napisi svoju, ali koriscenjem aritmetickih operacija, a ne stringova.
[ de_c0der @ 15.01.2007. 11:51 ] @
Ne znam kako ti Srki, al ja s njima nikad nisam na kraj izasao... trazio sam po mnogim forumima i velik broj ljudi je imao isti problem i nikako ga nisu rjesili vec na onaj nacin koji sam dao u kodu!
Code:
The D6, D7, and D7.1 Math unit's RoundTo
and SimpleRoundTo functions are very sick.
(See QC report #8070.)
...
Izvor:
http://qc.borland.com/wc/qcmain.aspx?d=8143
Jos linkova:
http://www.festra.com/eng/tip-rounding.htm
Code:
In at least some versions of Delphi, RoundTo is defective.
For example, rounding to two places, the number 1.875 is
represented exactly in floating-point, and Bankers' Rounding
(round to even) requires a result of 1.88; but 1.87 is obtained.
http://www.merlyn.demon.co.uk/pas-chop.htm
[Ovu poruku je menjao de_c0der dana 15.01.2007. u 13:03 GMT+1]
[ Bojan Kopanja @ 15.01.2007. 13:02 ] @
@de_c0der
Ne znam sta da ti kazem ( ni ostalima sa tim problemom ). Ja od kad znam za sebe korisim RoundTo F-ju i nikad nisam imao problema. RoundTo zaokruzuje bas onako kako treba ( po matematickim pravilima ).
[ savkic @ 15.01.2007. 15:30 ] @
> al ja s njima nikad nisam na kraj izasao... trazio sam po mnogim forumima i velik broj ljudi je imao isti problem i nikako ga nisu rjesili vec na
> onaj nacin koji sam dao u kodu!
Potraži DecimalRounding unit od John Herbstera.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.