Zahl auf zwei Kommastellen runden (1.004 -> 1.00) ?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Wanderer

Betreff: Zahl auf zwei Kommastellen runden (1.004 -> 1.00) ?

BeitragFr, Jan 28, 2005 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es eine Möglichkeit, eine Fliesskommazahl auf zwei Stellen nach dem Komma zu runden?
Mai Siehgnätschah gohs hiah.

BladeRunner

Moderator

BeitragFr, Jan 28, 2005 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
int(zahl#*100)/100

EDIT:

wahlweise auch mit floor oder ceil

und wahlweise (zahl#*100)+.5)/100 um Rundungsfehler auszuschliessen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Jan_

Ehemaliger Admin

BeitragFr, Jan 28, 2005 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
int(zahl#*100)/100


Sicher Blade?

bei mir funktioniert das nciht :-/

Code: [AUSKLAPPEN]

Print int(zahl#*100.0)/100.0

Funktiniert aber richitg.

Naja, hängt vielleicht an der Blitzversion.
between angels and insects
 

Wanderer

BeitragFr, Jan 28, 2005 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm... das scheint bei mir doch nicht das Problem zu sein. Ich dachte, es liegt vielleicht an einem Rundungsfehler -wenn ich nämlich ein Objekt, das vorher auf irgendeine Größe skaliert war, wieder auf exakt 1.0 skaliere (also EntityScale Mesh, 1.0, 1.0, 1.0 ), gibt Blitz dem Mesh seltsamerweise MANCHMAL die Größe von 1.045... Kann es sein, daß Blitz es einfach nicht so genau nimmt mit dem Skalieren?? Ist das bei euch auch schon aufgetreten?
Mai Siehgnätschah gohs hiah.
 

Apocalyptic

BeitragFr, Jan 28, 2005 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Jan_ hat Folgendes geschrieben:
BladeRunner hat Folgendes geschrieben:
int(zahl#*100)/100


Sicher Blade?

bei mir funktioniert das nciht :-/


Das kann auch nicht funktionieren, denn wenn man ein Integer in Blitz teilt kommt auch wieder eine ganze Zahl raus:Code: [AUSKLAPPEN]
Print 1/3:Waitkey()
daher:Code: [AUSKLAPPEN]
float(int(zahl#*100))/100
bzw allgemein:Code: [AUSKLAPPEN]
float(int(zahl#*10^Stellen))/(10^Stellen)
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

BladeRunner

Moderator

BeitragFr, Jan 28, 2005 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, ihr habt ja recht Wink

Ich hatte da das Runden vom C64 im Kopf (den nutz ich letzterdings wieder öfters). Benutzt das +.5 Konstrukt und floor() und dann sollte es laufen .
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group