Хранить 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);

выход echoprint_rvar_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);

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

Другие вопросы по тегам