Thomas Meinike: Datentyp für genaue Dezimalzahlen

Beitrag lesen

Hallo,

ich binmir aber jetzt gar nicht sicher ob die Zahlen in diesem Wertebereich auch 100% genau sind. Also angenommen ich multipliziere so eine Zahl 999.99999999 mit 0.27, woher kann man mit Sicherheit wissen dass bei so einer Aktion keine Fehler innerhalb der 8 Nachkommastellen auftreten?

Verstehe ich nicht so ganz. Du bekommst die Genauigkeit von 8 Nachkommastellen, ggf. am Ende gerundet.

Wenn es besonders genau sein soll, dann verwende die "Binary Coded Decimals"-Funktionen von PHP mit der Angabe der Anzahl Nachkommastellen:

<?php

$ergebnis=bcdiv(bcmul("99999999999","27"),"10000000000",8);
// --> 269.99999999

?>

Dieses Ergebnis sollte die Datenbank aber auch ohne diesen Umweg speichern, wenn die Berechnung innerhalb einer Abfrage vorkommt.

MfG, Thomas