Szczerze w to wątpie. Ułamki dziesiętne używają matematyki stałoprzecinkowej i nie ma typu danych w PHP, który mógłby to zapewnić. Liczby zmiennoprzecinkowe zbliżają się do siebie, ale w rzeczywistości są zaokrąglone, co oznacza, że przypisanie 2 do liczby zmiennoprzecinkowej może spowodować zamiast tego 1.999999999999999999. Więc nawet jeśli MySQL oferuje sposób na przekształcenie liczby dziesiętnej w liczbę zmiennoprzecinkową w PHP, ryzykujesz utratę danych przez rzutowanie z liczby dziesiętnej na zmiennoprzecinkową.
Aby poradzić sobie z tym czysto, potrzebujesz czegoś takiego jak GMP , ale jak można się domyślić, MySQL nie może tego automatycznie zapewnić. Musisz to zrobić ręcznie w PHP.