2 Kommastellen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

BlitzBasic303

Betreff: 2 Kommastellen

BeitragSa, Jan 28, 2006 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich möchte, das irgendwie eine Floatvariable genau zwei Kommastellen bekommt. Nur weiß ich nicht wie genau man das machen sollte... Kennt ihr eine Lösung?


Mfg

BlitzBasic303

SpionAtom

BeitragSa, Jan 28, 2006 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann zieh dir mal das rein.

Code: [AUSKLAPPEN]

a# =3.141592

Print a

   a = a * 100  ;100 beudeutet: 2 Nachkommastellen
   a = Floor(a)
   a = a / 100

Print a


Vielleicht gehts auch einfacher, keine Ahnung
 

BlitzBasic303

Betreff: RE:

BeitragSa, Jan 28, 2006 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Klappt super!
Ich habs jetzt so gemacht:
Code: [AUSKLAPPEN]

a=Floor(a#*100)/100


Brauch nur eine Zeile...
 

Ava

Gast

BeitragSa, Jan 28, 2006 11:57
Antworten mit Zitat
Also manchmal........ ich weis ja nicht.... Rolling Eyes

https://www.blitzforum.de/viewtopic.php?t=16089

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Jan 28, 2006 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
a#=123.456
b#=123.4

Print Floor(a*100)/100
Print Floor(b*100)/100

WaitKey


a ergibt 123.45 wie erwünscht!
b ergibt 123.4 nicht wie erwünscht, da steht 'genau 2 Nachkommastellen' und nicht mal so und mal so, wie's halt kommt.

[EDIT] Wie kann es sein, daß es immer wieder zwei Leute gibt, die genau das gleiche Problem haben und nahezu zeitgleich ein Post eröffnen? Also, manchmal verstehe ich die Welt nicht mehr. Smile
 

BlitzBasic303

Betreff: RE:

BeitragSa, Jan 28, 2006 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, das mit der Null zum Schluß ist egal...
@Ava und hectic:
Ich gucke eigentlich nicht in den 2D Bereich, wenn ich was über Mathefunktionen wissen will...

SpionAtom

BeitragSa, Jan 28, 2006 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
hectic hat Folgendes geschrieben:

a ergibt 123.45 wie erwünscht!
b ergibt 123.4 nicht wie erwünscht, da steht 'genau 2 Nachkommastellen' und nicht mal so und mal so, wie's halt kommt.


Stimmt, das habe ich nicht bedacht, aber ich glaube, das ist rein mathematisch nicht möglich, da letzte Nullen immer gestrichen werden.
Aber ich lasse mich gerne eines besseren belehren. Wenn man also wirklich genau 2 Stellen haben möchte, dann sollte man noch im 2D-Thread zu diesem Thema schauen.
 

Dreamora

BeitragSa, Jan 28, 2006 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

output$ = int(float_zahl*100)/100.0


Das sollte eigentlich funktionieren.
Für x stellen nach dem Komma einfach statt 100 10.0^x verwenden.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

SpionAtom

BeitragSo, Jan 29, 2006 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Code: [AUSKLAPPEN]

output$ = int(float_zahl*100)/100.0


Das sollte eigentlich funktionieren.
Für x stellen nach dem Komma einfach statt 100 10.0^x verwenden.


kapier ich nicht, erklär mal Confused
 

Dreamora

BeitragSo, Jan 29, 2006 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Uups sorry war ein Fehler drin:

output$ = floor(float_zahl*100)/100.0

(zuviel BM, weil BM bei Int einfach abschneidet, net rundet)
Also float_zahl ist die Float die du auf 2 Stellen willst.
* 100 schiebt die Kommastelle um 2 nach hinten.
Mit Floor schneidest du dann alles Hinter dem Komma ab.

Das /100.0 (das .0 MUSS zwingend da sein, damit eine Float raus kommt) schiebt dann die Kommastelle wieder um 2 nach hinten, so das eine auf 2 Kommastellen abgeschnittene Float dabei herauskommt.

Wenns net funktioniert:
output$ = left(floor(float_zahl*100)/100.0
output$ = left(output$,instr(output$,".")+2)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

SpionAtom

BeitragSo, Jan 29, 2006 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch auf die Gefahr hin, ds ich nerve: Das macht für mich immer noch keinen Sinn. Crying or Very sad . Ich bin immer noch der Meinung, dass man fehlende Nullen nur mit Stringoperationen anfügen kann.
 

Dreamora

BeitragSo, Jan 29, 2006 23:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat irgend jemand etwas dagegen gesagt?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

SpionAtom

BeitragMo, Jan 30, 2006 1:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh! Hab mich falsch ausgedrückt, ich verstehe nur deinen Code nicht, Dreamora. Jedenfalls bewirkt der bei mir nichts.
 

Dreamora

BeitragMo, Jan 30, 2006 9:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Für zu kurz geratene Nachkommaausgaben muss er lediglich ein wenig erweitert werden:

Code: [AUSKLAPPEN]

' float_zahl ist die Float die man formatiert haben möchte
output$ = left(float_zahl,instr(float_zahl,".")+2)
for i = 1 to (2 + instr(float_zahl,".") - len(output))
   output = output + "0"
next



Das sollte eigentlich funktionieren.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Jan 30, 2006 16:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier nochmal meine.....
Code: [AUSKLAPPEN]
Function FormatFloat$(a#,z) ; z = Nachkommastellen
   b$ = Int(a# * 10^z) /10.0^z
   Return b$ + String ("0",Instr(b$,".")+z -Len (b$))
End Function

Ohne Schleife....
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group