• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Zahlen runden

Bonsoir!

Ich habe versucht mit dem angehängten Code eine Ganzzahl zu erzeugen. Leider ist erscheint beim Testen aber doch eine Zahl mit vielen Nachkommastellen.

Kann mir jemand sagen, was ich da falsch mache?
1.jpg
 

jonny65

Geomaster
Sollte nach dem Prinzip des Aufrundens (+0.5) und anschliessendem Nachkommastellen abschneiden gehen, also : dn=math.floor(dn + 0.5)
Ohne den +0.5 würde z.b auch aus 2.86465875 eine 2, mit dem vorhergehenden Aufrunden wird eine korrekte 3 (3.36465875 > Nachkommastellen weg mit floor > 3)
 

docfred

Geocacher
whiterussian_ch schrieb:
leider wird bei meinem Code im Emulator aber gar nicht gerundet...

du solltest dein math.round durch die von Jonny genannte funktion "dn=math.floor(dn + 0.5)" ersetzen.

math.round ist m.E. gar nicht implementiert (allerdings sollte dann ein Fehler kommen)
Versuch wäre noch: dn = math.round (dn, 1)

docfred
 

AoiSora

Geocacher
Alternativ geht auch noch math.ceil(dn - 0.5) , jedoch ist mit + zu rechnen immer unproblematischer als mit -.
 

jonny65

Geomaster
Ich glaub auch fast, daß der Wert der Variablen von der Funktion natürlich stimmt, aber in der Messagebox eine andre Variable (eine ungerundete) ausgegeben wird.
Du kannst zum Check auch mal eine globale Variable "dn" deklarieren, den Identifier "dn" verpassen nicht vergessen und dann im Debug Fenster print(dn) eingeben nachdem die Funktion aufgerufen wurde.
 
OP
W

whiterussian_ch

Geocacher
Ganz fieser (und zugleich sehr dummer) Fehler: Ich hatte die gleiche Funktion weiter unten nochmals definiert (Copy Paste halt).

So kann ich an der oberen Version der Funktion natürlich lange rumwerkeln, die untere überschreibt das natürlich dann immer...

Danke für die Hilfe!
 

mekeks

Geonewbie
Ich finde das Thema sehr spannend, aber leider bin ich noch nicht so weit dahinter gestiegen.
Da ich gerade solch ein Problem habe mit dem Zahlen, muss ich das Thema mal wieder aufleben lassen.

Ich habe folgendes Problem.
Die Distanz zu der Zone zeigt es ja üblicher Weise mit vielen Nachkommastellen an. Ich will aber eine runde Zahl ohne Nachkommastelle.
Dies wird bestimmt mit LUA-Code bearbeitet wie es hier schon beschrieben war, aber da ich damit noch nicht groß gearbeitet habe, muss ich mal um Hilfe bitten.
math.floor scheint die Formel zu sein oder? Aber wie binde ich das ein.
Ich hab mal ein Foto von der Programmierung eingestellt.
zahlen runden.jpg
 

Charlenni

Geomaster
Ich würde eine neue Variable anlegen. Die nennst du einfach "Entfernung". Achtung: hier muss auch die Kennung ausgefüllt werden. Am besten auch "Entfernung" eintragen. Dieser Variablen weist du nun die tatsächliche Entfernung zu und rundest diese dann bei der Ausgabe. Habe dir mal einen Screenshot beigelegt, wie das aussehen könnte.
 

Anhänge

  • Runden.PNG
    Runden.PNG
    26,5 KB · Aufrufe: 666

mekeks

Geonewbie
Sensationell!
Großes Dankeschön. Damit habe ich jetzt eine runde Zahl.

Ich werd mich nun doch mal bissl mehr mit LUA beschäftigen müssen.
 
Oben