Geldbetrag umformatieren

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

  • #16
    Mal ein Lösungsansatz

    Zuerst alles rauswerfen, was keine Miete zahlt, sprich Dollarsymbole, "EUR", "DEM" etc., davon ausgehend, daß in der Variable $cur_string die Benutzereingabe steht:

    PHP-Code:
    $cur_string preg_replace("/[a-zA-Z $]/","",$cur_string); 
    Dann suchen wir uns die Bestandteile des Preises heraus, davon ausgehend, daß ein Komma oder Punkt max. 2 Zeichen vor Ende die Dezimaltrennung darstellt und der Rest der Hauptbetrag vor dem Komma ist:

    PHP-Code:
    preg_match("/^([0-9.,]+)[.,]{1}(\d{0,2})/",$cur_string,$m); 
    Nun fischen wir uns noch die einzelnen Bestandteile heraus und eliminieren eventuelle Formatierungen im Hauptbetrag.

    PHP-Code:
    $vorkomma preg_replace("/[.,]/","",$m[1]);
    $nachkomma $m[2]; 
    Für weitere Berechnungen fügen wir die Schnipsel wieder zusammen:

    PHP-Code:
    $summe floatval($vorkomma.".".$nachkomma); 
    Das dürfte malso als Anregung genügen, denke ich. Weitere Umrechnungen und Anpassungen bitte mit Hilfe von
    PHP-Code:
    http://www.php.net 
    (vor allem num_format() ) entsprechend vornehmen.
    Happiness is an empty error log

    Kommentar


    • #17
      PHP-Code:
      if (preg_match('%\\.(.*)+,%'$zahl))
          
      $zahl str_replace(array('.'','), array('''.'), $zahl);
      elseif (
      preg_match('%,(.*)+\\.%'$zahl))
          
      $zahl str_replace(','''$zahl);
      else
          
      $zahl preg_replace('%[^0-9]%'''$zahl);
      echo 
      floatval($zahl); 
      könnte auch klappen, is aber ungetestet

      so sollten aber rein theoretisch auch mehr als zwei nachkommastellen eingegeben werden können, du kannst ja danach runden
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar

      Lädt...
      X