Zahlen mit deutschem Tausender Trenner formatieren

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

Ansicht von 1 Antwort-Thema
  • Autor
    Beiträge
    • #5167
      AnHa
      Teilnehmer

        Hallo LCler,

        bitte helft mir doch nochmal :o)

        Wie kann man Zahlen mit deutschem Tausender Trennner (Punkt)
        formatieren und in einem Field ausgeben lassen.

        DANKE vorab.

        Gruß

        Andreas

      • #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

          🙂

      Ansicht von 1 Antwort-Thema
      • Du musst angemeldet sein, um auf dieses Thema antworten zu können.