Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Dezimalfelder, die in PHP als Strings zurückgegeben werden

Ich bezweifle es stark. Dezimalzahlen verwenden Festkomma-Mathematik, und es gibt keinen Datentyp in PHP, der dies leisten kann. Floats kommen dem nahe, sind aber tatsächlich gerundet, was bedeutet, dass die Zuweisung von 2 zu einem Float stattdessen 1,99999999999999999 ergeben könnte. Selbst wenn MySQL eine Möglichkeit bietet, eine Dezimalzahl in ein PHP-Gleitkomma zu übertragen, riskieren Sie einen Datenverlust, wenn Sie von einer Dezimalzahl in eine Gleitkommazahl umwandeln.

Um dies sauber zu handhaben, benötigen Sie so etwas wie GMP , aber wie Sie wahrscheinlich erraten können, kann MySQL das nicht automatisch für Sie bereitstellen. Sie müssen dies manuell in PHP tun.