хранить bigint в переменной php

Я написал функцию, чтобы добавить запятую к каждому 8 нулю моего номера

Мне нужно сохранить значение в переменной или массиве PHP, но оно сохраняется как «1.0E + 30»

вот мой код PHP:

function SplitHex($number) {
$number_split = str_split($number,1);
$number_split_revers = array_reverse($number_split);
$i = 0;
foreach ($number_split_revers as $key => $value ) {
if ( $value == 0) {
$i++;
if ( $i == 8 ) {
$number_split_revers[$key] = str_replace(0,",0",$value);
$i=0;
}
}

}
$final = '';
$number_final = array_reverse($number_split_revers);
foreach ($number_final as $value ) {
$final .= $value;
}

//$final = strval(implode("",$number_final));

return $final;

и я вызываю функцию:

$test[2] = SplitHex(1000000000000000000000000000000);
var_dump ($test);
print_r ($test);

выход echo print_r var_dump все одинаковы

1.0E+30

но это должно быть 1000000,00000000,00000000,00000000

Я много искал, но не мог найти правильное решение для этой проблемы

1

Решение

FYI,

если число слишком длинное, оно не может вписаться в 32-х целочисленный формат в php, поэтому оно будет храниться в float

Таким образом, вы не можете увидеть это целочисленное значение, если оно превышает размер PHP_INT_MAX.

Но это альтернатива этому,

$test[2] = number_format(SplitHex(1000000000000000000000000000000),0,null,'');
var_dump ($test);
print_r ($test);

Попробуйте, это должно работать.

1

Другие решения

Других решений пока нет …