Hi. Wie rechnet man in Samp mit % Zahlen? Also ich möchte das man mit /steuern die Steuern festlegt aber 1. Wie speichert man solche %Zahlen oder wie rechnet man z.B. wenn man $1000 verdient und die Steuern 25% sind, wie rechnet man in Samp aus wie viel die Steuern in $ betragen?
Samp Mit % Zahlen arbeiten.
- Acrio
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
z.B.: 200$ mal 20% = 200*0,2
Denke ich zumindest...ach das ist falsch.. -
var - var * prozentzahl/100 so vllt?
-
wie rechnet man z.B. wenn man $1000 verdient und die Steuern 25% sind, wie rechnet man in Samp aus wie viel die Steuern in $ betragen?
Ganz einfach eine Rechenaufgabe schreiben:
new lohn = 1000;
new steuern = 25;
new netto = lohn\100*75; // ganz einfacher Dreisatz. Bei dieser Aufgabe werden zB. von den 1000$ Lohn 25% Steuern abgezogen. -
-
So?
Steuern = pInfo[playerid][pLohn] * (SteuerSatz/100); -
-
So?
Steuern = pInfo[playerid][pLohn] * (SteuerSatz/100);
Richtig, allerdings brauchst du die Klammern nicht. Denn a * (b / c) ist das gleiche wie a * b / c
Und Steuern muss eine Float-Variable sein, da Dezimalzahlen entstehen, andernfalls musst du die Zahl vorher noch runden. -
Edit: Joe.
Deine Variable netto muss aber ne Float sein, sonst wird das nix, solange du nicht rundest.
Rundet er da nicht automatisch?
Hab in meinem PayDay Script auch kein Float und er rundet es:
new zinsen = (SpielerInfo[playerid][pKonto]/1000)*(zinssatz); -
Ganz einfach eine Rechenaufgabe schreiben:
new lohn = 1000;
new steuern = 25;
new netto = lohn\100*75; // ganz einfacher Dreisatz. Bei dieser Aufgabe werden zB. von den 1000$ Lohn 25% Steuern abgezogen.So wie du überall Prozentrechnest.
X% entspricht: Kapital * 0.X
25% entspricht: Kapital * 0.25
33% entspricht: Kapital * 0.33
usw uswEdit: Joe.
Deine Variable netto muss aber ne Float sein, sonst wird das nix, solange du nicht rundest.Naya in seinem Fall nicht
10*75 = 750 -> ne Integer xD
Aber im Regelfall hast du Recht.
Hier mal meine Version
new Float:Var = ???;Var -= Var*0.schießmichtot;
MfG NicoAiko -
-
Rundet er da nicht automatisch?
Hab in meinem PayDay Script auch kein Float und er rundet es:
new zinsen = (SpielerInfo[playerid][pKonto]/1000)*(zinssatz);
Nein, der rundet nicht automatisch. Du kannst natürlich Glück haben und in deinem Script entstehen nur ganze Zahlen, dann hat das Script auch kein Problem damit. 5% von genau 200 ist ja z.B. ne grade Zahl. 5% von 201 aber nicht :pEdit: @Sh12 aka Nrs
Ich behaupte mal: Quark. Die Variable lässt darauf schließen, dass er den Wert der Steuern ermitteln will und da ist seine Rechnung vollkommen korrekt. -
Was er grob ausgedrückt hat, heißt eigentlich, dass es %-Werte auch in Formen von Dezimalzahlen gibt.
1,0 = 100%
0,5 = 50%
0,25 = 25%In deinem Beispiel willst du 25% von 1000$.
Also 1000$ sind die 100%. Wir wollen aber 25% wegenehmen. Dann bleiben 75% übrig.
Also 1000$ x 0,75.
Dies würde den Wert ergeben, nachdem der Zinssatz abgezogen wurde.
Da der Zinssatz die 25% sind, müsste man, wenn man den abgezogenen Zinssatz ausrechen wolle, 1000 x 0,25. -
Wenn ich es runde sieht es ja so aus.
Steuern = floatround(pInfo[playerid][pLohn] * (SteuerSatz/100));
Aber jetzt habe ich hier Fehler.
Geld = pInfo[playerid][pLohn] - Steuern; -
Wenn ich es runde sieht es ja so aus.
Steuern = floatround(pInfo[playerid][pLohn] * (SteuerSatz/100));
Aber jetzt habe ich hier Fehler.
Geld = pInfo[playerid][pLohn] - Steuern;Verrate uns aber bitte blos nicht den Fehler, sonst könnte man ggf helfen.
-
Tag mismatch. Sry habe ich vergessen.
-
Geld, pInfo[playerid][pLohn] & Steuern sind aber alles Integer Variablen, oder?
-
Wenn du zB 20% Steuern willst,
dann mach einfach :::
new steuern = floatround(pInfo[playerid][pLohn]*0.2);
//Dann
Geld = pInfo[playerid][pLohn] - steuern; -
Steuern nicht. Das ist eine FLoat. Variable aber die habe ich ja schon zum Integer gerundet Steuern = floatround(pInfo[playerid][pLohn] * (SteuerSatz/100));
-
Hilfreicher Tipp @Sh12, schließlich und endlich tut er GENAU das. Dass er den Steuersatz vielleicht bewusst durch 100 dividiert ist dir noch nicht in den Sinn gekommen oder? Vielleicht möchte er ja ein dynamisches Steuersystem haben.
Acrio: Steuern muss Integer sein, wenn du floatround benutzt, bekommst du ja eh nen Integer-Value ausgegeben
Und du hast nur den Inhalt auf Integer gerundet, nicht aber die Variable selbst. -
Steuern = pInfo[playerid][pLohn] * (SteuerSatz/100);
floatround(Steuern);
Geld = pInfo[playerid][pLohn] - Steuern;
Das ist mein Jetziger Code. Und Steuern muss doch ein Float sein da dezimalstellen kommen können- -