Geldbetrag in Worte umwandeln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Geldbetrag in Worte umwandeln

    Tach zusammen,

    ich suche ne Klasse, um einen Geldbetrag in Worte umzuwandeln. Hat jemand was auf Lager?

    also z.b.

    121 -> einhunderteinundzwanzig

    Das wird doch bestimmt schon jemand benötigt haben...

    thx'n greetz
    Zuletzt geändert von MehrMeerHer; 18.03.2006, 12:10.

  • #2
    Salut,

    din Post hat mich herausgefordert und ich habe mal schnell was getippt. Die Fkt geht für Zahlen bis 999 und ohne Kommabestandteil. Die Funktionalität für grössere Zahlen und Kommazahlen darfst du dir gerne selber schreiben.
    Die Zeilen habe ich mal kurz getestet und es scheint zu funzen.
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    function 
    numberToWord($zahl){
        
    $hundert = array(1=>'einhundert',
                        
    2=>'zweithundert',
                        
    3=>'dreihundert',
                        
    4=>'vierhundert',
                        
    5=>'f&uuml;nfhundert',
                        
    6=>'sechshundert',
                        
    7=>'siebenhundert',
                        
    8=>'achthundert',
                        
    9=>'neunhundert');
        
    $zehn = array(1=>'zehn',
                        
    2=>'zwanzig',
                        
    3=>'dreissig',
                        
    4=>'vierzig',
                        
    5=>'f&uuml;nfzig',
                        
    6=>'sechzig',
                        
    7=>'siebzig',
                        
    8=>'achtzig',
                        
    9=>'neunzig',
                        
    11=>'elf',
                        
    12=>'zw&ouml;lf');
        
    $einer = array(1=>'eins',
                        
    2=>'zwei',
                        
    3=>'drei',
                        
    4=>'vier',
                        
    5=>'f&uuml;nf',
                        
    6=>'sechs',
                        
    7=>'sieben',
                        
    8=>'acht',
                        
    9=>'neun');
        
    $zahl strval($zahl);
        
    $pos strpos($zahl,'.');
        
    $temp '';
        if(
    $pos === false && strlen($zahl) === 3){
            
    $i 0;
            
    $ii strlen($zahl);
            while(
    $i<$ii){
                if(
    $i == 0){
                    
    $temp .= $hundert[intval($zahl[$i])];
                }elseif(
    $zahl[$i] == '1' && $zahl[$i+1] == '1'){
                    return 
    $temp .= $zehn[11];
                }elseif(
    $zahl[$i] == '1' && $zahl[$i+1] == '2'){
                    return 
    $temp .= $zehn[12];
                }else{
                    return 
    $temp .= $einer[intval($zahl[$i+1])].'und'.$zehn[intval($zahl[$i])];
                }
                
    $i += 1;
            }
        }elseif(
    $pos === false && strlen($zahl) === 2){
            if(
    $zahl[0] == '1' && $zahl[1] == '1'){
                return 
    $temp .= $zehn[11];
            }elseif(
    $zahl[0] == '1' && $zahl[1] == '2'){
                return 
    $temp .= $zehn[12];
            }else{
                return 
    $temp .= $einer[intval($zahl[1])].'und'.$zehn[intval($zahl[0])];
            }
        }elseif(
    $pos === false && strlen($zahl) === 1){
            return 
    $temp .= $einer[intval($zahl[0])];
        }
    }
                    
    echo 
    numberToWord(22);
    ?>
    Für grössere Zahlen musst du dementsprechend die Arrays erweitern und weitere Bedingungen einbauen.
    Viel Spass beim Basteln

    Gruss

    tobi

    p.s. funzt bei mir mit PHP5 Apache 2 und Windoof. V.a. für die Entwicklung und Erweiterung der Funktion würde ich dir empfehlen das error_reporting so zu lassen wie es oben steht.
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      http://simplecontent.net/snippets/vi..._number_1.html
      http://tests.daoc-ds.de/tests/zahlenwort.php?ssc=1

      beides ungetestet, bloß ergooglet.

      Kommentar


      • #4
        vielen dank euch beiden,

        ich werde am besten mal alles in ruhe testen. ich hatte auch was gefunden, es funzte aber alles nicht so 100%

        Kommentar

        Lädt...
        X