Zahlen Eingabe

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Midimaster

BeitragSa, Jun 18, 2011 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal was für Leute die über 99.999.999,99 EUR haben:

BlitzBasic: [AUSKLAPPEN]
Graphics 500,900
Zahl1$="11122233344455566" ; entspräche 111.222.333.444.555,66 EUR
Zahl2$="33344455566677"
Zahl3$=""

Zahl3 = Addition(Zahl1 , Zahl2)

Function Addition$( ZahlA$ , ZahlB$)
Local Ergebnis$=""
Lang=Len(ZahlA)
If Lang< Len(ZahlB)
Lang=Len(ZahlB)
ZahlA=Right("00000000000000000000" + ZahlA , Lang)
Else
ZahlB=Right("00000000000000000000" + ZahlB , Lang)
EndIf
Print zahla
Print zahlb

Print
Print "Berechnung beginnt"
For i%=0 To Lang-1
StelleA = Mid(ZahlA , Lang-i,1)
StelleB = Mid(ZahlB , Lang-i,1)
Summe = (StelleA + StelleB+UeberTrag)
If Summe < 10
UeberTrag = 0
Else
UeberTrag = 1
Summe = Summe-10
EndIf
Print StelleA + " + " + StelleB + " = " + Summe + " (Übertrag=" + Uebertrag
Ergebnis$= Summe + "" + Ergebnis
Next

Print
Print "Ergebnis:"

Print zahla
Print zahlb
Print "-----------------------------"
Print Ergebnis
Return Ergebnis
End Function


...alles ist möglich...

BB-Freak

BeitragSo, Jun 19, 2011 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Was momentan das größte Problem ist :
Die Kommazahlen um die kümmere ich mich zuerst Exclamation
Ich weiß nur nicht so recht wie ich das hingriegen soll, denn die Zahlen werden ja von hinten nach vorne geschrieben(auch die Kommazahlen) und eigentlich würde ich die Kommazahlen gerne extra schreiben Confused

Außerdem nochmal vielen dank, das du dir die Mühe machst Midimaster Very Happy
Aber übertreibs nicht Arrow Mach dir nicht so viel arbeit mit mir Wink

Midimaster

BeitragSo, Jun 19, 2011 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
keine Sorge, ich antworte nicht, wenn ich keine Zeit habe oder es keinen Spaß machen würde...

Warum willst du denn die Kommazahlen unbedingt extra behandeln? Gibt es Gründe? Gibt es mehr als 2 Nachkommastellen? Gibt es wirklich Beträge über 99.999.999,99 EUR?

Das System mit nur CENTs zu rechnen ist durchgängig sicherer und problemloser. Einzig zur Ausgabe auf den Bildschirm oder Drucker wirst Du den Wert als String mit Komma benötigen!

Beschreibe mir mal, was Deine Bedenken gegen die CENT-Weise wären...

BB-Freak

BeitragSo, Jun 19, 2011 15:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich eine Zahle eingebe, gebe ich automatisch zuerst die Kommazahlen ein, diese widerum rutschen bei jeder neuen Zahl die ich eingebe ein Feld noch forn, dass heißt vor das Komma Wink
Deshalb würde ich lieber zuerst die Ganzen und dann wenn ich z.B. "," drück die Kommazahlen schreiben Exclamation

Midimaster

BeitragSo, Jun 19, 2011 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ah, da hatte ich dich komplett falsch verstanden. es geht hier nur um die eingabemaske...

Deshalb würde ich ja mit Strings arbeiten. D.h. der User setzt den ZahlenString aus den Tastaturdrücken zusammen. Erlaubt sind 0-9 und das Komma. Du musst dann testen, ob das Komma schon gesetzt ist, und wenn ja sind nur noch 2 weitere Ziffern erlaubt.

Code: [AUSKLAPPEN]
z.b.
Taste   String   Zahl   Bildschirm
-------------------------------------
4  ->  4          400      4,00
5  ->  45        4500     45,00
0  ->  450      45000    450,00
,  ->  450,     45000    450,00
6  ->  450,6    45060    450,60
8  ->  450,68   45068    450,68
9  ->  450,68   45068    450,68


Auf dem Bildschirm sieht der User aber nicht, wie der String wirklich aussieht, sondern bereits die Umwandlung in einen GeldString


Schritt 1:
du programmierst die EingabeRoutine so, das sie einen String wie hier im Beispiel erzeugt. Du testest jede Eingabe auf "gültige Ziffer" , "Anzahl der Kommas" , Anzahl der Nachkommastellen.

Schritt 2:
aus diesem String erzeugst Du jetzt die Zahl.
a.
wenn ohne Komma dann immer *100
b.
wenn mit Komma, dann alles vor dem Komma * 100 und ...

b . a . ...wenn hinten nur eine ziffer, dann addierst du diese Hinterzahl*10 zu der Zahl
b . b . ...wenn hinten zwei ziffern, dann addierst du diese Hinterzahl zu der Zahl
b . c . ...wenn hinten gar keine ziffer dann addieren wir nichts

Schritt 3:
du wandelst die Zahl in einen GeldString

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group