Вычтите 1 из большого числа в PHP

Мне нужно вычесть 1 из числа 294867828828426241 в PHP. Однако, когда я это делаю

 $a = 294867828828426241 - 1; 

Я получаю номер с плавающей запятой 2.94867828828E+17 . Который, когда разрешено number_format() дает исходное число.

Как я могу получить правильное значение, пожалуйста?

Это должно быть способно работать с разными номерами.

Если у вас есть расширение BCMath, вы можете использовать это:

 $a = bcsub('294867828828426241', '1'); echo $a; // 294867828828426240 

Однако, тестирование на моем 64-битном сервере, ваш код должен работать правильно. Я не уверен, но вы можете проверить, не повлияет ли увеличение точности директивы в вашем php.ini . У меня установлен мой в 14.