Autor Thema: Zahl in Worten (Buchstaben) umwandeln  (Gelesen 9050 mal)

Offline weisnix

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Zahl in Worten (Buchstaben) umwandeln
« am: 01.11.10 - 11:42:12 »
Hallo,

hat von euch schon mal jemand ne Funktion geschrieben, mit der man Zahlen in Buchstaben umwandeln kann?

Also aus einem Zahlenfeld von z.B. 1238 soll in ein anderes Feld der Wert "Eintausendzweihundertachtunddreißig" geschrieben werden.

Danke für Eure Hilfe.

Gruß
André


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Zahl in Worten (Buchstaben) umwandeln
« Antwort #1 am: 01.11.10 - 12:28:33 »
Da ich nicht genau weiß, wozu das benötigst, nur ein Hinweis, wie ich das mal automatisch auf Schecks (das sind diese kleinen Zettel, für die man früher mal Geld bekam, als noch nicht jeder mit 'ner Kreditkarte ausgestattet war  :)) gedruckt gesehen habe.

-eins-zwei-drei-acht-

Das hat man im Bankenbereich akzeptiert und lässt sich natürlich viel einfacher rechnen. Vielleicht genügt das in Deiner Anwendung ja auch?

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Zahl in Worten (Buchstaben) umwandeln
« Antwort #2 am: 02.11.10 - 10:39:19 »
Jup, aber in JavaScript vor ca. 10 Jahre. Ist im Prinzip nur Fleißarbeit. PM mir mal deine Mailadresse, dann kann ich dir das gerne schicken.

Offline billygates

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • Ich kann 'proprietär' nicht mehr hören!
Re: Zahl in Worten (Buchstaben) umwandeln
« Antwort #3 am: 02.11.10 - 16:20:16 »
Ich sag nur: @replaceSubstring

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Zahl in Worten (Buchstaben) umwandeln
« Antwort #4 am: 08.11.10 - 17:37:55 »
Grad' beim Aufräumen drauf gestoßen. Der Code ist in keinster Weise vorbildlich, ich würde das eher unter Machbarkeits-Experiment verbuchen ;)

Code
<html>

<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<script language="JavaScript" src="overlib.js"><!-- overLIB (c) Erik Bosrup --></script>

<script language="JavaScript">
<!--

function intToStr(arg_zahl){
	function kToStr(arg_zahl){
    var zahl = arg_zahl;
    if(zahl.substr(0,1)=='0'){zahl= zahl.substr(1,zahl.length);}
    if(zahl.substr(0,1)=='0'){zahl= zahl.substr(1,zahl.length);}
    if(zahl.substr(0,1)=='0'){zahl= zahl.substr(1,zahl.length);}
    var final = "";
    function sonderzahlen(sonder){
      sonder = parseInt(sonder);
      if(sonder == 10)return "zehn";
      if(sonder == 11)return "elf";
      if(sonder == 12)return "zwölf";
      if(sonder == 13)return "dreizehn";
      if(sonder == 14)return "vierzehn";
      if(sonder == 15)return "fünfzehn";
      if(sonder == 16)return "sechszehn";
      if(sonder == 17)return "siebzehn";
      if(sonder == 18)return "achtzehn";
      if(sonder == 19)return "neunzehn";
      return false;}
    var einzeln = Array("null","eins","zwei","drei","vier","fuenf","sechs","sieben","acht","neun");
    var zehner = Array("null","zehn","zwanzig","dreißig","vierzig","fuenfzig","sechzig","siebzig","achtzig","neunzig");
    if(zahl.length == 3){
      if(zahl=="000")return '';
      if(zahl.substr(0,1)=='1'){
        final += "einhundert";
      }else{
        final += einzeln[zahl.substr(0,1)] + "hundert";}
      if(zahl.substr(1,2)!="00"){
        if(zahl.substr(1,1)!='0'){
          if(((parseInt(zahl.substr(1,2)) > 19) || (parseInt(zahl.substr(1,2)) < 11)) && zahl.substr(2,1) != '0'){
            einzeln[1] = "ein";
            final += einzeln[parseInt(zahl.substr(2,1))] + "und" + zehner[parseInt(zahl.substr(1,1))];
          }else if((parseInt(zahl.substr(1,2)) < 20) && (parseInt(zahl.substr(1,2)) > 10)){
            final += sonderzahlen(zahl.substr(1,2));
          }else if(zahl.substr(2,1)=='0'){
          final += zehner[parseInt(zahl.substr(1,1))];
          }else{
            final += einzeln[parseInt(zahl.substr(2,1))];}
        }else{
          final += einzeln[parseInt(zahl.substr(2,1))];}}
    }else if(zahl.length==2){
      if(zahl=="00")return '';
      if(zahl.substr(0,1)!='0'){
        if(((parseInt(zahl.substr(0,2)) > 19) || (parseInt(zahl.substr(0,2)) < 11)) && zahl.substr(1,1) != '0'){
          einzeln[1] = "ein";
          final += einzeln[parseInt(zahl.substr(1,1))] + "und" + zehner[parseInt(zahl.substr(0,1))];
        }else if((parseInt(zahl.substr(0,2)) < 20) && (parseInt(zahl.substr(0,2)) > 10)){
          final += sonderzahlen(zahl.substr(0,2));
        }else if(zahl.substr(1,1)=='0'){
        final += zehner[parseInt(zahl.substr(0,1))];
        }else{
          final += einzeln[parseInt(zahl.substr(1,1))];}
      }else{
        final += einzeln[zahl];}
    }else if(zahl.length==1){
      if(zahl=='0')return '';
      final += einzeln[parseInt(zahl.substr(0,1))];}
    return final;}

	var ff = "";
  if(arg_zahl.length<4){
	  return kToStr(arg_zahl);
	}else if(arg_zahl.length<7){
		var f1 = kToStr(arg_zahl.substr(0,arg_zahl.length-3));
		var f2 = kToStr(arg_zahl.substr(arg_zahl.length-3,3));
		return f1 + "tausend" + f2;
	}else if(arg_zahl.length<10){
		var f1 = kToStr(arg_zahl.substr(0,arg_zahl.length-6));
		var f2 = kToStr(arg_zahl.substr(arg_zahl.length-6,3));
		var f3 = kToStr(arg_zahl.substr(arg_zahl.length-3,3));
		if(f1=='eins'){ff+="einemillion";}else{ff+=f1+"millionen";}
		if(f2=='eins'){ff+="eintausend";}else if(f2!=""){ff+=f2+"tausend";}
		ff+=f3;
		return ff;
	}else if(arg_zahl.length<13){
		var f1 = kToStr(arg_zahl.substr(0,arg_zahl.length-9));
		var f2 = kToStr(arg_zahl.substr(arg_zahl.length-9,3));
		var f3 = kToStr(arg_zahl.substr(arg_zahl.length-6,3));
		var f4 = kToStr(arg_zahl.substr(arg_zahl.length-3,3));
		if(f1=='eins'){ff+="einemilliarde";}else{ff+=f1+"milliarden";}
		if(f2=='eins'){ff+="einemillion";}else if(f2!=""){ff+=f2+"millionen";}
		if(f3=='eins'){ff+="eintausend";}else if(f3!=""){ff+=f3+"tausend";}
		ff+=f4;
		return ff;}
}

//-->
</script>

<body>

<center><br><br><br><br><br><br><br><br><br><br><br>
<input type="text" name="a1">
<input type="button" onClick="alert(intToStr(document.all.a1.value));" value="da button">

</body>

</html>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz