Есть ли какая-нибудь функция, которая легко повторяет целое число длиной более 15 цифр? Единственный способ, которым я справился, таков:
$num = 123456789012345;
$num = number_format($num);
$num = str_replace(',', '', $num);
echo $num;
Но даже таким образом он точен только до 17 цифр. После 16-й цифры число печатается неточно (потому что в качестве числа с плавающей запятой оно начинает становиться неточным - см. здесь).
РЕДАКТИРОВАТЬ: Из приведенных ниже ответов я написал
ini_set('precision',40);
, а затем повторил $num прямо. Все это было сделано для того, чтобы, проще говоря, не показывать десятичную точку в числе с плавающей запятой. И снова после 16-й цифры он начинает становиться неточным. Я также попробовал другое предложение изменить его в массив, а затем повторить его с помощьюstr_split($num);
, и снова числа были неточными, начиная с 17-й цифры!
Самым простым решением было бы преобразовать целое число в строку. Я пытался:
$num = (string)$num;
//and
$num = strval($num);
Но ни чего не меняют и ведут себя как бы как и остались как инт???
Мой вопрос конкретно в том, почему преобразования в строки не работают. Есть ли способ превратить число в строку? Спасибо