nur ganze zahlen ausrechnen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abschneiden
ahnung
angabe
anzahl
code
datei
datenbank
funktion
grad
grafische ausgabe
interpreter
jemand
lese
problem
rohstoff
string
textdatei
typ
wissen
zahl
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du musst die Zahl einfach mithilfe der Funktion round() runden. Dann sollten Ganzzahlen rauskommen.
Edit: Da man bei round() die Anzahl der Nachkommastellen angeben muss, kannst du auch einfach die Funktionen ceil() oder floor() verwenden.
Edit2: round() rundet automatisch auf/ab. ceil() rundet immer auf und floor() rundet immer ab.
Grüße, Moritz
Beitrag geändert: 16.5.2008 13:45:43 von moritzpeuser -
gut, aber wie soll ich des dann einbauen?
-
Naja - ich weiß nicht ob das bei PHP auch so geht, aber ich gehe mal davon aus, das die Funktion round() dir einen Wert zurückgibt, der dann eben gerundet ist.
Entsprechend schreibst du einfach:
$Holzmenge_new = round($Holzmenge);
Wenn du keine Nachkommastelle haben willst musst du da nichts weiter eingeben.
Die Angabe der Anzahl der Nachkommatellen ist Optional. Standart ist 0!
lg, Michael
edit: Falls du es wissen must: Die Variable $Holzmenge muss vom Typ \"float\" sein, und die Variable $Holzmenge_new ebenfalls, da der Rückgabewert der Funktion vom Typen \"float\" ist
Beitrag geändert: 16.5.2008 16:35:14 von frodo89 -
Und PHP soetwas automatisch zuordnet.
In C++ beispielsweise müsste man bei soetwas die Varibalen explizit als Float oder einen Multi-Bezeichner deklarieren. In PHP ist das allerdings kein Problem... der Interpreter macht es von ganz alleine. -
Hm
Da hab ich keine Ahnung. Ich meine - diesen Expliziten Fall mit der Holzmenge betrifft das jetzt nicht, aber wenn jetzt der Code so aussieht:
$Holzmenge_new = \'Holzmenge nach dem Runden\'; $Holzmenge = 512.16; $Holzmenge_new = round($Holzmenge);
Dann ist doch $Holzmenge_new zunächst vom Typen String, und wird später mit einer Floatzahl belegt - in dem Fall beißt sich das doch, oder ändert dann der Interpreter den Typen nochmal?
lg, Michael -
also sehe ich des richtig, dass ich nicht einfach den wert aulesen und den dann runden kann, weil des nicht die richtige variable is? Also ich lese den wert aus einer textdatei aus, dieser soll dann gerundet werden, und wieder abgespeichert werden. das mit dem lesen und schreiben is ja einfach, aber des mit dem runden, da wird hier ja gestritten
-
also sehe ich des richtig, dass ich nicht einfach den wert aulesen und den dann runden kann, weil des nicht die richtige variable is? Also ich lese den wert aus einer textdatei aus, dieser soll dann gerundet werden, und wieder abgespeichert werden. das mit dem lesen und schreiben is ja einfach, aber des mit dem runden, da wird hier ja gestritten
Wo liegt noch das Problem? Verwirrt dich das $holzmenge_new? Du kannst natürlich auch so machen:
$holzmenge = round($holzmenge);
Ob auf- oder abgerundet wird, ist ja im Prinzip sowieso egal... Wie ich ja schon oft gesehen habe, machst du ja ein Browsergame. Ich habe bei meinem Browsergame zuerst auch alle Benutzerdaten aus einer Textdatei ausgelesen. Allerdings habe ich das schnell aufgegeben ;) Erstens sind die Daten nicht geschützt und zweitens ist alles viel unflexibler: wenn du beispielsweise ein neuer Rohstoff einführen möchtest, musst du alle Userfiles umschreiben. Mein Tipp: schau dir die MySQL-Einleitung auf schattenbaum.net an und machs damit - Phpmyadmin ist auf den ersten Blick vielleicht etwas verwirrend, aber du wirst dich damit schon anfreunden.
MfG
sebigisler -
Du willst ein Browsergame programmieren?
Dann verwende doch lieber eine Datenbank - da kannst du die Zahlen gleich im richtigen Datentypen Speichern.
Ansonsten musst du glaubich den String (das was du aus dem Text ausließt) erst in eine Zahl umwandeln, da es davor nicht als Zahl sondern als Zeichenfolge angesehen wird.
Ich such dir grad die Entsprechende Funktion raus!
lg, Michael
//edit: Find sie nicht - weiß sie grad jemand der hier vorbeischaut?
Beitrag geändert: 16.5.2008 17:50:47 von frodo89 -
Du könntest auch einfach mit number_format die Nachkommastellen abschneiden...
-
also, ich finde es sicher, da nur teammitglieder wissen, wo die textdateien für jeden einzelnen user liegen. und wenn ich einen neuen rohstoff mache, dann in einer neuen welt, aslo dort is sowieso einiges anderst..
-
Na wenn du meinst :D
Aber ich glaube, wenn ein Spieler wirklich interessiert ist zu Cheaten, dann wird er auch die Dateien finden. -
jo, dann muss er nurnoch das passwort rausfinden, sich nen bonus holen, erwischt werden, rausfliegen, und die ip gesperrrt bekommen. Dann war das sicer toll, esseiden, er hat noch nen internetanschluss..
-
Du weißt schon, dass man normalerweise nach jedem Einwählen eine neue IP bekommt?
frodo89 schrieb:
Hm
Da hab ich keine Ahnung. Ich meine - diesen Expliziten Fall mit der Holzmenge betrifft das jetzt nicht, aber wenn jetzt der Code so aussieht:
[ code]
$Holzmenge_new = \\\'Holzmenge nach dem Runden\\\';
$Holzmenge = 512.16;
$Holzmenge_new = round($Holzmenge);
[ /code]
Dann ist doch $Holzmenge_new zunächst vom Typen String, und wird später mit einer Floatzahl belegt - in dem Fall beißt sich das doch, oder ändert dann der Interpreter den Typen nochmal?
lg, Michael
Das ist PHP so ziemlich egal. Wenn du erst einen String hast und den dann mit einem Int überschreibst, hast du dann eben einen Int. Du kannst auch Strings zu Ints addieren, wenn beides Zahlen sind... -
nicht unbedingt. auserdem mach ich grad sowieso alles neu, und ich hab den code zum ip herausfinden verloren, desswegen hab ich schon vor ein paar minuten en neues thema aufgemacht..
-
Das würde aber nicht runden, sondern die Nachkommastellen einfach abschneiden.
Wo bitteschön leigt denn das Problem bei round()?! -
die haben gesagt, dass das nicht bei allen Veriablen geht..
-
die haben gesagt, dass das nicht bei allen Veriablen geht..
Wie wärs, wenn du einfach Mal ausprobierst?! Man muss nicht immer auf die Anderen hören. Schief gehen kann ja schliesslich nichts!!! Es braucht schon ein wenig Eigeninitiative und kreative Ideen für ein Browsergame. Mit deinen Beiträgen bringst du mich echt zum Ausrasten - und das obwohl ich weder einen zu hohen Blutalkoholpegel habe, noch übermüdet bin...
Wie ich dir schonmal geraten habe - häng dein Browsergame an den Nagel und lern erst Mal ordentlich HTML...
MfG
sebigisler -
@IP: $_SERVER[\'REMOTE_ADDR\']
@Runden: Ich würde gar nichts runden. Nachdem das Endergebnis feststeht einfach für die grafische Ausgabe die Nachkommastellen abschneiden und gut ist. Es ist ja nur die grafische Ausgabe, denn in der Datei/Datenbank sollte weiterhin der Nachkommawert mit dabei stehen...
@sebi: Keks? ^^ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage