2 Kommastellen
Übersicht

BlitzBasic303Betreff: 2 Kommastellen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
||
BlitzBasic303Betreff: RE: |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke! Klappt super!
Ich habs jetzt so gemacht: Code: [AUSKLAPPEN] a=Floor(a#*100)/100 Brauch nur eine Zeile... |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Also manchmal........ ich weis ja nicht.... ![]() https://www.blitzforum.de/viewtopic.php?t=16089 |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() |
||
BlitzBasic303Betreff: RE: |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auch auf die Gefahr hin, ds ich nerve: Das macht für mich immer noch keinen Sinn. ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hat irgend jemand etwas dagegen gesagt? | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh! Hab mich falsch ausgedrückt, ich verstehe nur deinen Code nicht, Dreamora. Jedenfalls bewirkt der bei mir nichts. | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
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+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group