Есть ли какая-либо функция, которая легко эхо целое число, которое составляет 15 + цифр? Единственный способ, мне удалось, как это:Преобразование int длиной более 16 цифр в строку в php
$num = 123456789;
$num = number_format($num);
$num = str_replace(',', '', $num);
echo $num;
Но даже так это точно только до 17 цифр. После 16-й цифры номер не печатается точно (потому что в качестве поплавка он начинает становиться неточным - see here).
EDIT: Из ответов ниже я написал
ini_set('precision',40);
, а затем повторил $ num прямо. Все это было просто, просто не показывать десятичную точку в номере с плавающей точкой. И снова после 16-й цифры он начинает становиться неточным. Я также попробовал другое предложение об изменении его в массив, а затем повторил его с помощьюstr_split($num);
, и снова цифры были неточными с 17-го числа!
Простейшим решением было бы преобразование целого числа в строку. Я пробовал:
$num = (string)$num;
//and
$num = strval($num);
Но ничего не измените, и они действуют так, как если бы они оставались как int ??
Мой вопрос в том, почему преобразования в строки не работают. Есть ли способ превратить число в строку? Благодаря
спасибо, я попробовал ваши предложения ... Проверьте внесенные изменения – Ben
@Ben Обновлен мой ответ – manniL