Wie Kommazahlen programmieren?
Hallo,
Ich habe ein Problem: ich habe ein kleines Game programmiert, welches eine Geldanzeige bietet. Es gibt einen Knopf der 10 Münzen hinzufügt und das wird jede Sekunde wiederholt. So erhält man wenn man den Gegenstand gekauft hat durchgehend geld. Ich will allerdings nicht, dass das nur jede Sekunde passiert sondern alle 0,1 Sekunde soll 1 Münze hinzugefügt werden. Jedoch kommt immer eine Fehlermeldung da das Komma oder ein Punkt nicht richtig als Komma erkannt werden.
Danke schon Mal im Vorraus
7 Antworten
Fließkommazahlen werden mit einem Punkt statt einem Komma geschrieben und in einigen Programmiersprachen mit einem "f" am Ende.
0,1 in c++:
float meine_zahl = 0.1 ;
0,1 in java oder c#:
float meineZahl = 0.1f ;
Ahh vielen Dank!
Ich musste nur ein f hinter die 0.1 schreiben
- Welche Sprache benutzt Du denn zur Programmierung?
- Welchen Datentyp hast Du benutzt? Wenn Du z. B. integer benutzt, funktioniert das mit dem Komma natürlich nicht.
Das muss dann vom Datentyp double sein, nicht int
Kann es sein das du als Parameter Millisekunden angeben sollst?
Ich weiß nicht, in welcher Sprache du dein Spiel programmiert hast, aber du hast zwei Möglichkeiten:
1) Prüfe, ob der Datentyp korrekt ist. Fließkommatypen müssen immer als solche gekennzeichnet sein. Bei gängigen Hochsprachen ist das ein "float" oder "double", statt einem "integer".
2) Rechne alle Kommazahlen hoch. Du musst allerdings deinem Programm dann sagen, wo es entsprechend wieder runterteilen muss. (0,1 wäre dann "intern" 1, da du die Zahl mit 10 hochmultiplizierst). Wird übrigens in der Industrie häufiger so gemacht, um Rechenzeiten mit Kommazahlen zu umgehen.
Danke für die Antwort,
Ich benutze C# da ich in Unity programmiere. Die Zeile sieht wie folgt aus:
yield return new WaitForSeconds (1);
Muss ich daran etwas ändern?
"Wait for Seconds" wird als Übergabewert tendenziell nur ganze Zahlen erwarten. Du könntest dir deine eigene Funktion basteln oder meinen 2. Tipp verwenden.
Hab ich schon Versuch. Dann passieren richtig crazy sachen :D zum Beispiel bekommt man dann plötzlich 1000 Münzen in 3,33 Sekunden
Ich benutze C#