Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zaokruzivanje brojeva na dvije decimale

[es] :: Pascal / Delphi / Kylix :: Zaokruzivanje brojeva na dvije decimale

[ Pregleda: 10352 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ribar2006

Član broj: 96856
Poruke: 25
87.250.117.*



Profil

icon Zaokruzivanje brojeva na dvije decimale12.01.2007. u 15:39 - pre 210 meseci
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
 
Odgovor na temu

de_c0der

Član broj: 127698
Poruke: 107
*.adsl.net.t-com.hr.



Profil

icon Re: Zaokruzivanje brojeva na dvije decimale12.01.2007. u 16:54 - pre 210 meseci
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.

 
Odgovor na temu

ribar2006

Član broj: 96856
Poruke: 25
87.250.117.*



Profil

icon Re: Zaokruzivanje brojeva na dvije decimale13.01.2007. u 11:21 - pre 210 meseci
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
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: Zaokruzivanje brojeva na dvije decimale14.01.2007. u 23:23 - pre 210 meseci
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...

there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Zaokruzivanje brojeva na dvije decimale15.01.2007. u 02:30 - pre 210 meseci
> 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.
 
Odgovor na temu

de_c0der

Član broj: 127698
Poruke: 107
*.adsl.net.t-com.hr.



Profil

icon Re: Zaokruzivanje brojeva na dvije decimale15.01.2007. u 08:51 - pre 210 meseci
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
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Zaokruzivanje brojeva na dvije decimale15.01.2007. u 09:12 - pre 210 meseci
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.
 
Odgovor na temu

de_c0der

Član broj: 127698
Poruke: 107
*.adsl.net.t-com.hr.



Profil

icon Re: Zaokruzivanje brojeva na dvije decimale15.01.2007. u 11:51 - pre 210 meseci
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]
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
85.222.163.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: Zaokruzivanje brojeva na dvije decimale15.01.2007. u 13:02 - pre 210 meseci
@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 ).
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Zaokruzivanje brojeva na dvije decimale15.01.2007. u 15:30 - pre 210 meseci
> 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.

 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Zaokruzivanje brojeva na dvije decimale

[ Pregleda: 10352 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.