Antwort auf: Zahlen mit deutschem Tausender Trenner formatieren

Startseite Foren Deutsches LiveCode-Forum Zahlen mit deutschem Tausender Trenner formatieren Antwort auf: Zahlen mit deutschem Tausender Trenner formatieren

#5169
Klaus Major
Administrator

    Hi Andreas,

    ich habe dafür diese kleine Funktion geschrieben.

    Hinweis:
    Funktioniert so, wie sie ist, nur mit Zahlen mit durch KOMMA getrennte Nachkommestellen

    function tausender_trenner tZahl
       ## Das hier liefern wir am Schluss zurück
       put empty into zahlMitTausenderTrenner
       
       ## Hat die Zahl Nachkommastellen?
       ## Dann müssen wir uns die merken, denn wir arbeiten nur mit den ganzen Zahlen VOR dem Komma
       put FALSE into nachkommastellen
       set itemdel to ","
       if the num of items of tZahl = 2 then
          put TRUE into nachkommastellen
          put item 2 of tZahl into dieNachkommastelle
          put item 1 of tZahl into tZahl
       end if
       
       ## Nun ganz so, wie man es mit einem Stück Papier, Stift,
       ## Schere und Uhu machen würde!
       repeat 
          
          ## wir fangen hinten mit den letzten drei Ziffern an:
          put char -3 to -1 of tZahl into tTemp
          if the num of chars of tTemp < 3 then
             put tTemp before zahlMitTausenderTrenner
             exit repeat
          else
             
             ##Punkt hier einfügen
             put "." & tTemp before zahlMitTausenderTrenner
          end if
          
          ## Nun die bereits bearbeiteten Ziffern löschen
          delete char -3 to -1 of tZahl
       end repeat
       
       ## Vielleicht haben wir vorn einen Punkt, den brauchen wir aber nciht
       if char 1 of zahlMitTausenderTrenner = "." then
          delete char 1 of zahlMitTausenderTrenner 
       end if
       
       ## Nachkommastellen? Dann wieder hinten drankleben
       if nachkommastellen then
          put "," & dieNachkommastelle AFTER zahlMitTausenderTrenner
       end if
       return zahlMitTausenderTrenner
    end tausender_trenner

    🙂