Zahlen ausschreiben
Übersicht

![]() |
Silver_KneeBetreff: Zahlen ausschreiben |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Dim Zahlen$(19)
Dim Zehner$(9) Dim Potenz$(4) Zahlen$(0)="" Zahlen$(1)="ein" Zahlen$(2)="zwei" Zahlen$(3)="drei" Zahlen$(4)="vier" Zahlen$(5)="fünf" Zahlen$(6)="sechs" Zahlen$(7)="sieben" Zahlen$(8)="acht" Zahlen$(9)="neun" Zahlen$(10)="zehn" Zahlen$(11)="elf" Zahlen$(12)="zwölf" Zahlen$(13)="dreizehn" Zahlen$(14)="vierzehn" Zahlen$(15)="fünfzehn" Zahlen$(16)="sechszehn" Zahlen$(17)="siebzehn" Zahlen$(18)="achtzehn" Zahlen$(19)="neunzehn" potenz$(1)="tausend" Potenz$(2)="millionen" Potenz$(3)="milliarden" Potenz$(4)="billionen" Zehner$(1)="zehn" Zehner$(2)="zwanzig" Zehner$(3)="dreißig" Zehner$(4)="vierzig" Zehner$(5)="fünfzig" Zehner$(6)="sechzig" Zehner$(7)="siebzig" Zehner$(8)="achtzig" Zehner$(9)="neunzig" Function InWorten$(Zahl) If Zahl=0 Return "null";Spezalfälle If Zahl=1 Return "eins"; Preis=Zahl count=0;Potenzen-Zähler Repeat If Right(Preis,3)<>"000";Wenn diese Potenz etwas enthäll: bei 1000000 gibt es keine tausend wert$=Potenz(count)+wert;Potenz vorranstellen EndIf count=count+1;Potenzzähler erhöhen If Int(Right(Preis,2))<20;die Zahlen <20 gesondert If Right(Preis,2)="01" And count=1;bei der ersten Potenz enden 01 auf eins wert2$="eins" Else wert2$=Zahlen(Int(Right(Preis,2)));Sonst auf einen speziellen Wert. EndIf Else If Int(Right(Preis,1))>0;zusammengesetzte zahlen wie ein-und-zwanzig? wert2=Zahlen(Right(Preis,1))+"und"+Zehner(Left(Right(Preis,2),1)) Else;oder nur zehnerschritte? wert2=Zehner(Left(Right(Preis,2),1)) EndIf EndIf If Len(Preis)>2;hunderter If Int(Left(Right(Preis,3),1))<>0;ist ein hunderter enthalten? wert=Zahlen(Left(Right(Preis,3),1))+"hundert"+wert2+wert;zahl+hundert anhängen Else wert=wert2+wert EndIf Preis=Left(Preis,Len(Preis)-3);die überprüfende zahl um 3 stellen verkürzen: 12.345->12 If preis=0 Exit;ist die Zahl dann zuende, verlasse die schleife Else;zahl < hundert wert=wert2+wert Exit EndIf Forever If Left(wert,3)="ein" And Zahl=>100 wert=Right(wert,Len(wert)-3);vorangestelltes ein wie bei einhundert oder einmilliarden löschen. Return wert$ End Function Repeat Print inWorten(Input(">")) Forever Auf Basis des getrashten Codes von BadDeath hab ich eine funktionierende Version geschrieben. Free2Test =) *Update*100er Überprüfung verbessert *Update*100er Überprüfung nochmals verbessert *Update*"ein am Anfang" wird nur bei zahlen=>100 gestrichen |
||
- Zuletzt bearbeitet von Silver_Knee am Fr, Mai 16, 2008 22:41, insgesamt 2-mal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mh, es sollte "eine Million" statt "millionen" (milliarden) heißen... Aber ansonsten funktionstüchtig, wenn ich auch nicht ganz sehe, wo man so etwas gebrauchen könnte. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das gabs schonmal, wenn auch versteckt:
https://www.blitzforum.de/foru...hp?t=26850 Edit: Gib mal 1034 ein... |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hatte eine Falsche überprüfung auf 100er hin. Sinn war die Funktion von BadDeath zu berichtigen =)[/code] | ||
BadDeath |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke ....
Ich habe ein/zwei Fehler gefixxt, aber Zahlen wie 10047: Code: [AUSKLAPPEN] Dim Zahlen$(19)
Dim Zehner$(9) Dim Potenz$(7) Preis = Input$("Preis: ") ;Preis = preis*1.19 Print "inkl. MwST: " + preis Print InWorten$(Preis) WaitKey End Function InWorten$(Preis$) Zahlen$(1) ="ein" Zahlen$(2) ="zwei" Zahlen$(3) ="drei" Zahlen$(4) ="vier" Zahlen$(5) ="fünf" Zahlen$(6) ="sechs" Zahlen$(7) ="sieben" Zahlen$(8) ="acht" Zahlen$(9) ="neun" Zahlen$(10)="zehn" Zahlen$(11)="elf" Zahlen$(12)="zwölf" Zahlen$(13)="dreizehn" Zahlen$(14)="vierzehn" Zahlen$(15)="fünfzehn" Zahlen$(16)="sechszehn" Zahlen$(17)="siebzehn" Zahlen$(18)="achtzehn" Zahlen$(19)="neunzehn" potenz$(1)="" Potenz$(2)="zehn" Potenz$(3)="hundert" Potenz$(4)="tausend" Potenz$(5)="zehntausend" Potenz$(6)="hunderttausend" Potenz$(7)="million" Zehner$(1)="zehn" Zehner$(2)="zwanzig" Zehner$(3)="dreißig" Zehner$(4)="vierzig" Zehner$(5)="fünfzig" Zehner$(6)="sechzig" Zehner$(7)="siebzig" Zehner$(8)="achtzig" Zehner$(9)="neunzig" If Instr(Preis$,",") = 0 Then If Len(Preis$) > 2 Then wert2$ = Zahlen$( Left(Preis$,1) ) wert2$ = wert2$ + Potenz$( Len(Preis$) ) Else wert2$ = Zahlen$(Preis$) If wert2$ = "ein" Then wert2$ = wert2$ + "s" Return wert2$ End If For i = 1 To Len(Preis$) - 3 Preis$=Right$(preis$,Len(Preis$)-1) wert2$ = wert2$ + Zahlen$( Left(Preis$,1) ) wert2$ = wert2$ + Potenz$( Len(Preis$) ) Next If Right$(Preis$,2) = "01" Then wert2$ = wert2$ + "undeins" If Right$(Preis$,2) > "01" And Right$(Preis$,2) < "20" Then If Len(Preis$) > 2 Then wert2$ = wert2$ + "und" If Mid$(Preis$,Len(preis$)-1,1) < "2" Then wert2$ = wert2$ + zahlen$(Right(preis$,2)) End If If Right$(Preis$,2) > "20" Then If Len(Preis$) > 2 Then wert2$ = wert2$ + Zahlen$(Right(Preis$,1)) + "und" wert2$ = wert2$ + Zehner$(Mid(Preis$,Len(Preis$)-1,1)) Else wert2$ = Zahlen$(Right(Preis$,1)) + "und" wert2$ = wert2$ + Zehner$(Mid(Preis$,Len(Preis$)-1,1)) End If End If EndIf If Left$(wert2$,3) = "ein" Then wert2$ = Mid$(wert2$,4) Return wert2$ End Function vllt könnt ihr mir sagen, wo der fehler ist - danke |
||
buja |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
coo, das zahlen über 1000 nicht ganz richtig sind ist für mich nich soo schlimm, aber so bis 100 kann ich gut gebrauchen ![]() |
||
... |
![]() |
BlacksideBetreff: Bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn man nen zehner+1 eingibt(21,31...) dann wird bei mir nur undzwanzig angezeigt ![]() |
||
Hier sollte eigentlich eine Signatur stehen! |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du solltest auch beachten das da nicht bei 101000 (hunderteintausent) nicht "hunderttausendeintausent" steht ![]() mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Crack93-bug: 100er Überprüfung war nicht ganz ausgereift *fixed*
Blackside-bug: ein wie vor einhunndert eintausend oder wo es stört bei einmilliarden wurde Pauschal ausgestrichen. nun wird das nurnoch bei zahlen=>hundert gemacht. *fixed* |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group