Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

02.01.2006, 14:25

Prozentrechnung

Ich glaube zwar nicht das es sowas gibt, da ich es noch nirgens wo gesehen habe aber vielleicht weiß es ja der ein oder andere hier!

also:
kann man prozentrechnungen auch so machen:
Energie * 20%
ich weiß das das so nicht geht aber gibt es vielleicht eine andere funktion dafür?
Weil so ist das immer gewärks!

Zitat


Enegie +(Energie * 20) / 100


das wäre die einfache prozentrechnung bei c++!

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

02.01.2006, 14:30

Am einfachsten ist wohl, wenn du dir klar machst, das 20% von etwas 0.2 * etwas ist, also 20% von Eimerwasser = 0.2 * Eimerwasser
Für dich würde das heißen:

C-/C++-Quelltext

1
2
Energie += Energie * 0.2;
//Energie += ist das gleiche wie Energie = Energie +

Also 100% = 1
50% = 0.5
20% = 0.2
5% = 0.05
1% = 0.01
etc.

Anonymous

unregistriert

3

02.01.2006, 14:31

C-/C++-Quelltext

1
Energie += static_cast<unsigned long>(Energie * 0.2f);

4

02.01.2006, 14:43

ok, das wäre auch ne möglichkeit aber direkt die prozentzahl anzugeben geht nicht oder?

0.22 wären zwar fast das direkte also 22 aber jetzt 22%nicht!

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

5

02.01.2006, 14:49

Ja wenn du von etwas 22% haben willst, nimmst du es einfach mit 0.22 mal. Also wenn du ne Funktion machen willst, die ne Prozentzahl und nicht ne Kommazahl kriegt, machst du es am besten so

C-/C++-Quelltext

1
2
3
4
unsigned long neueEnergie(unsigned long Energie, short Prozent)
{
    return Energie + (Energie * (Prozent/100));
}

Anonymous

unregistriert

6

02.01.2006, 14:54

Spik)evil(
Das wird so nicht Klappen! Teil mal 33/100 als short, was kommt raus? 0

C-/C++-Quelltext

1
2
inline unsigned long neueEnergie (unsigned long Energie, short Prozent) 
{ return Energie + (Energie * static_cast<unsigned long>(Prozent/100.0f)); }

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

7

02.01.2006, 14:56

:rolleyes: Blöder Fehler
Vielleicht sollte man dann aber gleich float benutzen, denn dann is die Energie wenigstens genau

Anonymous

unregistriert

8

02.01.2006, 14:57

Spik)evil(
Tjaja, an diesen Fehlern sucht man sich wie bescheuert ;)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

02.01.2006, 15:17

Noch einfacher als

C-/C++-Quelltext

1
Energie += Energie * 0.2;


wäre folgendes:

C-/C++-Quelltext

1
Energie *= 1.2;

10

02.01.2006, 16:58

jup... oder mach dir nen Define... wobei das sicher nicht das sauberste ist...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige