Има ли някаква функция, която лесно отразява цяло число с дължина 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);
Но нито променят нищо и действат така, сякаш са останали като int??
Въпросът ми е конкретно защо преобразуванията в низове не работят. Има ли начин числото да се превърне в низ? Благодаря