Zahl als Text umwandeln
Hallo zusammen,
wie kann ich eine Zahl als Text umwandeln, zB 1 in eins, 2 in zwei usw.
Vielen Dank schon mal.
Gruß Kruna
8 Antworten
-
Moin ,
es gibt meines Wissens keinen direkten NX-Befehl dafür.
Für bessere/mehr Hilfe braucht es mehr Infos.Wie soll es den im Detail werden?
Nur einzelne Ziffern? Von 0 bis ...? Wie soll z.B. 145 als zahlwort aussehen?
KI kann sowas ;-) (und toleriert sogar schreibfehler :-D)Vg Ronald
-
Ich habe mal so etwas für eine Uhr umgesetzt. Das könnte man sich noch auf ein paar Stellen mehr erweitern :-) Mirko
let tn := time(now()); let no := ["null", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achzehn", "neunzehn", "zwanzig", "dreißig", "vierzig", "fünfzig", "eins"]; let m := number(format(tn, "m")); let mm := number(format(tn, "mm")); let h := number(format(tn, "h")); let hh := number(format(tn, "hh")); let resultM := switch true do case mm = 0: "" case mm = 1: "eins" case mm / 10 = 3: "dreißig" case mm / 10 = 4: "vierzig" case mm / 10 = 5: "fünfzig" case mm < 21: item(no, m) case floor(mm / 10) = 2: item(no, substr(text(mm), -1)) + "und" + item(no, 20) case floor(mm / 10) = 3: item(no, substr(text(mm), -1)) + "und" + item(no, 21) case floor(mm / 10) = 4: item(no, substr(text(mm), -1)) + "und" + item(no, 22) case floor(mm / 10) = 5: item(no, substr(text(mm), -1)) + "und" + item(no, 23) end; let resultH := switch true do case hh < 21: item(no, hh) case floor(hh / 10) = 2: item(no, substr(text(hh), -1)) + "und" + item(no, 20) case floor(hh / 10) = 3: item(no, substr(text(hh), -1)) + "und" + item(no, 21) case floor(hh / 10) = 4: item(no, substr(text(hh), -1)) + "und" + item(no, 22) case floor(hh / 10) = 5: item(no, substr(text(hh), -1)) + "und" + item(no, 23) end; let result := resultH + " Uhr " + resultM; let content := "<style> p { text-align: center; font-family: Courier; font-size: large; } </style> <p>" + result + "</p> "; html(content)
-
Als weitere Idee: In Fließtexten schreibt man der Regel nach die Zahlen bis 12 ja als Zahlwörter, darüber hinaus als Ziffern. Das habe ich mal so gelöst:
let myA1 := ["null", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn", "elf", "zwölf"]; let myTxt := if Zahl <= 13 then item(myA1, Zahl) else text(Zahl) end; "Es sind " + myTxt + " Luftballons."
Und für Zahlwörter bis 99:
let myAE := ["null", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achtzehn", "neunzehn"]; let myAZ := ["null", "zehn", "zwanzig", "dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", "achtzig", "neunzig"]; let myTxt := ""; myTxt := if Zahl <= 19 then item(myAE, Zahl) else if Zahl <= 99 then let myZ1 := number(substr(text(Zahl), 0, 1)); let myZ2 := number(substr(text(Zahl), 1, 1)); if myZ2 = 0 then item(myAZ, myZ1) else item(myAE, myZ2) + "und" + item(myAZ, myZ1) end else text(Zahl) end end; "Es sind " + myTxt + " Luftballons."
Das ließe sich mit weiteren Arrays für Hunderter, Tausender usw. bei Bedarf bei Bedarf noch erweitern.
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 8Antworten
- 100Ansichten
-
4
Folge bereits