https://wiki.php.net/rfc/locale_independent_float_to_string
Сейчас выражение
(string) 3.14 возвращает различный результат для, например, английского и русского языков: https://3v4l.org/MaUIT. Это может приводить к неприятным ошибкам в мультиязычных системах (интересные примеры в RFC).В PHP 8 в результате принятия предложения приведение чисел с плавающей точкой будет работать одинаково во всех локалях.
setlocale(LC_ALL, 'ru_RU');Для приведения с учетом локали можно пользоваться функциями семейства
$f = 3.14;
(string) $f; // 3,14 would become 3.14
strval($f); // 3,14 would become 3.14
var_dump($f); // float(3,14) becomes float(3.14)
settype($f, "string"); // 3,14 would become 3.14
implode([$f]); // 3,14 would become 3.14
printf со спецификатором f: sprintf('%f', 3.14).@vudaltsov | https://twitter.com/vudaltsov