Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 12.100 pregleda

Najnovija ↓

Zaokruzivanje brojeva na dvije decimale 12.01.2007. u 16:39 · pre 241 mesec #1
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
Re: Zaokruzivanje brojeva na dvije decimale 12.01.2007. u 17:54 · pre 241 mesec #2
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.

Re: Zaokruzivanje brojeva na dvije decimale 13.01.2007. u 12:21 · pre 241 mesec #3
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
Re: Zaokruzivanje brojeva na dvije decimale 15.01.2007. u 00:23 · pre 241 mesec #4
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...
Potpis
there's something out there
waiting for us,
and it ain't no man...
Re: Zaokruzivanje brojeva na dvije decimale 15.01.2007. u 03:30 · pre 241 mesec #5
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Zaokruzivanje brojeva na dvije decimale 15.01.2007. u 09:51 · pre 241 mesec #6
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
Re: Zaokruzivanje brojeva na dvije decimale 15.01.2007. u 10:12 · pre 241 mesec #7
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.
Potpis
Play Store
Re: Zaokruzivanje brojeva na dvije decimale 15.01.2007. u 12:51 · pre 241 mesec
izmenjeno 1 put, poslednji put de_c0der 15.01.2007. u 13:03
  1. de_c0der15.01.2007. u 13:03zapis iz teksta poruke
#8
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
Re: Zaokruzivanje brojeva na dvije decimale 15.01.2007. u 14:02 · pre 241 mesec #9
@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 ).
Potpis
ex Strog

http://www.zeussoftware.rs
Re: Zaokruzivanje brojeva na dvije decimale 15.01.2007. u 16:30 · pre 241 mesec #10
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme