Autor Beitrag
boebel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16


Delphi 7, Microsoft Visual C# 2010
BeitragVerfasst: Do 20.03.08 01:25 
Hallo

Kann für folgendes Problem keine Lösung finden, vielleicht hat mir jemand einen Vorschlag?

Ich will mit folgender Funktion eine Zahl mit einer Prozentzahl multipliziern (EKKU * MWST => 10 * 7.6%)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function EKKUMWST_calc (EKKU, MWST:Real) : Real;
begin
result:=EKKU*MWST;
EKKUMWST:=result;
end;


Ich könnte ja in der Variable "MWST" auch einfach den Wert '107.6' zuweisen, dann funktionierts.

Jedoch soll der Anwender die MWST selber bestimmen können und der trägt dann nur z.B. '7.6' oder '19' ein.


Gibt es eine Möglichkeit direkt mit Prozentzahlen zu multiplizieren?

Oder muss ich das anders angehen?


Vielen Dank für eure Hilfe.
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Do 20.03.08 01:38 
Eine Prozentzahl ist ja wie der Name sagt 1/100 ... folglich kann man einfach 1 + MWST / 100 rechnen und bekommt die richtigen Faktoren: Bsp. für 19 -> 1 + 19 / 100 = 1.19!
boebel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16


Delphi 7, Microsoft Visual C# 2010
BeitragVerfasst: Fr 21.03.08 14:54 
Hallo Sirke

Vielen Dank für deine Hilfe. jetzt wo du es sagst, erinnere ich mich an die Schulzeit. Da hatte mein Taschenrechner noch keine "%-Taste". Da musste ich das ja auch immer mit /100 rechnen.


Falls das mal jemand interessiert, so funktionierts:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function EKKUMWST_calc (EKKU, MWST:Real) : Real;
begin
result:=EKKU+(EKKU*MWST/100);
EKKUMWST:=result;
end;
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Fr 21.03.08 15:07 
Hi,

Bei der Gelegenheit kannst du dich auch direkt mal mit ausklammern beschäftigen, schaden wirds bestimmt nicht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  function EKKUMWST_calc (EKKU, MWST:Real) : Real;
  begin
    result := EKKU * (1 + MWST/100);
    EKKUMWST := result;  //ich weiß nicht, ob du damit den Namen der Funktion meinst, wenn ja: kannst du weglassen, ist identisch mit result
  end;


mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
boebel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16


Delphi 7, Microsoft Visual C# 2010
BeitragVerfasst: Fr 21.03.08 15:17 
Hi Hidden

Vielen Dank für den Tipp. Ist bestimmt die vernünftigere Lösung :-)

EKKUMWST ist ne Variable die ich in der Unit definiert hat.

Rufe in einer Prozedur zuerst die Funktion "EKKMWST_calc" auf und danach schreibe ich das Ergebnis in ein Label.

ausblenden Delphi-Quelltext
1:
2:
EKKUMWST_calc(EKKU,MWST);
Label1.Caption:=floattostr(EKKUMWST);
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 21.03.08 16:21 
warum nicht gleich

ausblenden Delphi-Quelltext
1:
Label1.Caption:=floattostr(EKKUMWST_calc(EKKU,MWST));					


da sparst du dir eine variable und die funktion bekommt auch ihren sinn wieder. (weil ansonsten hättest du ja auch ne procedure nehmen können)

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.