Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozentrechnen (https://www.delphipraxis.net/104962-prozentrechnen.html)

o0o 13. Dez 2007 12:21


Prozentrechnen
 
hi leutz,...ich hab diesmal ein problem mit der prozentrechnung^^

haltet mich nich fuer bloed ich hab in mathe aufgepasst;)
Delphi-Quellcode:
var
netto,brutto,prozent:Integer;
begin
  netto:=(strtoint(edit1.text));
  prozent:=(strtoint(edit2.text));
  brutto := (netto div 100) * prozent;
  edit3.Text:=(inttostr(brutto));
  edit4.Text:=(inttostr(netto+brutto));
also alles funkt perfekt...solange der netto betrag nicht unter 100 ist.
wenn unter 100 bekomme ich ein falsches ergebniss._.

ich bin mir nich sicher aber kann das an integer liegen?
naja bin ueber alle info's dankbar:)

da o0o

The Lord 13. Dez 2007 12:30

Re: Prozentrechnen
 
Benutze doch mal 'real' und '/' anstelle von 'div'.

sirius 13. Dez 2007 12:31

Re: Prozentrechnen
 
1. Du solltest mal von Integer auf Double wechseln, und statt "div" "/" verwenden.
2. "netto div 100" ergibt 0, wenn netto <100 ist; und auch sonst sind deine Ergebnisse sehr gerundet und eigentlich falsch (siehe Punkt 1)
3. Ist nicht Netto weniger als Brutto (also Netto=Brutto/100*Prozent ==> Brutto=Netto*100/Prozent)

o0o 13. Dez 2007 12:43

Re: Prozentrechnen
 
Zitat:

3. Ist nicht Netto weniger als Brutto (also Netto=Brutto/100*Prozent ==> Brutto=Netto*100/Prozent)
0_o was is daran falsch?*grad verwirrt is...*
Delphi-Quellcode:
brutto := (netto div 100) * prozent;
(ich rede grad vom vorgang zum errechnen^^)

btw thx das mit real und double werd ich mal probieren^^

o0o

PaddyL 13. Dez 2007 12:46

Re: Prozentrechnen
 
Zitat:

Zitat von o0o
Delphi-Quellcode:
brutto := (netto div 100) * prozent;

Delphi rechnet zuerst die Klammer. Und nimmt das Integer Ergebnis (bereits gerundet) mal den Prozentsatz.
Probiere mal
Delphi-Quellcode:
brutto := Round((netto / 100) * prozent);
Hier rundet Delphi erst am Ende. Sollte so gehen.

FAlter 13. Dez 2007 13:35

Re: Prozentrechnen
 
Hi,

in diesen Fall wären Gleitkommazahlen wohl eher angebracht. Aber ganz allgemein - wenn ich mit Integern rechne, steht bei mir das div möglichst weit hinten, z. B.

Delphi-Quellcode:
//Nicht so:
brutto := (netto div 100) * prozent;

//sondern so:
brutto := (netto * prozent) div 100;
Wenn man das Ergebnis eh runden will, also mit Integers rechnen, hat man so kaum einen großen Unterschied. Würde man bei PaddyLs Code noch das Round durch Trunc ersetzen, wäre das Ergebnis identisch, und es muss kein Umweg über Floats gemacht werden.

Mfg
FAlter


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz