Я написал функцию, чтобы добавить запятую к каждому 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
Я много искал, но не мог найти правильное решение для этой проблемы
FYI,
если число слишком длинное, оно не может вписаться в 32-х целочисленный формат в php, поэтому оно будет храниться в float
Таким образом, вы не можете увидеть это целочисленное значение, если оно превышает размер PHP_INT_MAX.
Но это альтернатива этому,
$test[2] = number_format(SplitHex(1000000000000000000000000000000),0,null,'');
var_dump ($test);
print_r ($test);
Попробуйте, это должно работать.
Других решений пока нет …