Hi,

(Now I call *this* node archaeology)

this is for german, very dumb. But a nice recursive aproach, suitable for numbers up to 999 999 999 with nice german grammar. Easily extendable.

sub de_number { my $positive = shift; my $out; my @tokens1 = qw(null ein zwei drei vier fünf sechs sieben acht ne +un zehn elf zwölf); my @tokens2 = qw(zwanzig dreissig vierzig fünfzig sechzig siebzig +achtzig neunzig hundert); # my @tokens3 = qw(million milliarde billion billiarde); # Not need +ed now if($positive >= 0 && $positive <= 12) { $out = $tokens1[$positive]; } elsif($positive >= 13 && $positive <= 19) { $out = $tokens1[$positive-10].'zehn'; } elsif($positive >= 20 && $positive <= 100) { my $one_idx = int $positive/10-2; my $ten_idx = $positive-($one_idx+2)*10; $out = $tokens1[$ten_idx].'und' if $ten_idx; $out .= $tokens2[$one_idx]; } elsif($positive >= 101 && $positive <= 999) { my $one_idx = int $positive/100; $out = $tokens1[$one_idx].'hundert'.&de_number($positive-$one_idx* +100); } elsif($positive >= 1000 && $positive <= 999999) { my $one_idx = int $positive/1000; my $tausend = $positive-$one_idx*1000; my $nonull = $tausend ? &de_number($tausend) : ''; $out = &de_number($one_idx).'tausend'.$nonull; } elsif($positive >= 1000000 && $positive <= 999999999) { my $one_idx = int $positive/1000000; my $mio = $positive-$one_idx*1000000; my $nonull = $mio ? ' '.&de_number($mio) : ''; my $one = $one_idx == 1 ? 'e' : ''; $out = &de_number($one_idx).$one.' million'; $out .= 'en' if $one_idx > 1; $out .= $nonull; } return $out; }

Bye
 PetaMem


In reply to Re: number 2 text by PetaMem
in thread number 2 text by Prince99

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.