Hallo leute. Hab ein kleines Rechnungsproblem..
caccount = floatround(checks*(ckurs/100)); gibt 0 aus.
caccount ist integer, checks ist integer und ckurs ist integer.
checks ist 2000 und ckurs ist 15.
warum gibt das 0 aus??
MFG
Hallo leute. Hab ein kleines Rechnungsproblem..
caccount = floatround(checks*(ckurs/100)); gibt 0 aus.
caccount ist integer, checks ist integer und ckurs ist integer.
checks ist 2000 und ckurs ist 15.
warum gibt das 0 aus??
MFG
Parameter:
Zitat(Float:value,floatround method: method=floatround_round)
Was bewirkt diese funktion?
Diese funktion rundet eine Float.
Floatround methoden:
Zitatfloatround_roundRound to the nearest integer. A fractional part of exactly 0.5 rounds upwards (this is the default).
floatround_floorRound downwards.
floatround_ceilRound upwards.
floatround_tozeroRound downwards for positive values and upwards for negative values (“truncate”).
Benutzung:
floatround(Variable/*oder Zahl*/,/*Methode z.B.*/floatround_ceil);
ckurs muss ebenfalls eine Float: Variable sein denn:
(ckurs / 100)
gibt 0.15 zurück,das kann es aber nicht weil ckurs nur eine zahl und kein float wert ist...
Somit wird automatisch wohl abgerundet und das ist 0 und 2000 mal 0 gibt 0
also müsste alles ein float sein?
wie wandle ich denn ein integer in float um?
Ich bezweifel, daß "checks" 2000 ist und die andere 15.
Die Rechnung ist korrekt, daß Ergebnis wäre 300 - mit den Werten die du uns hier geliefert hast.
Nochmal zum Verständnis, floatround rundet ein Float zu einem Integer.
Der Eingangswert muß aber keines Wegs Floats sein, es darf bloß kein Array oder Enum sein.
dma, es war ein beispiel checks ist der PayCheck (der wird aber auch als ganze zahl mit print in der konsole ausgegeben).
und ckurs ist tatsächlich 15
jaa caccount gibt aber 0 aus.. (caccount wird zuerst mit "new caccount = 0;" definiert)
bringt es was die definition zu ändern, d.h. nicht auf caccount=0 sondern einfach caccount; ?
Ein kleiner Test:
new Float:fckurs = 15;
new ckurs = 15;
print("Teilen");
printf("%d | %f",ckurs/100,fckurs/100);
new caccount = 0;
new Float:fcaccount = 0;
new checks = 2000;
caccount = checks * (ckurs / 100);
fcaccount = checks * (fckurs / 100);
print("Multiplizieren");
printf("%d | %f",caccount,fcaccount);
print("Runden");
printf("%d | %d",floatround(caccount,floatround_round),floatround(fcaccount,floatround_round));
Gibt aus:
Pawno muss die komma Zahl ja speichern,kann es aber nicht weil ckurs keine Float Zahl ist...
Also einfach beides Float machen,gerundet als ganze Zahl speichern geht ja trotzdem...
geht! Danke dir benjamin