我有一个数字列表然后我想在每个数字上使用逗号工作正常,但问题如果数字超过14我的输出成为科学格式
喜欢这个1,.,1,1,1,1,1,1,1,1,1,E,+,2,8
但我希望像1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,
这里的示例代码
<?php
$val = 11111111110000000000000000111;
$val = (string)$val; // convert into a string
$arr = str_split($val, "1"); // break string in 3 character sets
$val_new = implode(",", $arr); // implode array with comma
echo $val_new;
?>
由于
答案 0 :(得分:2)
这是因为它超过max value of an integer。你无能为力。 超过此限制的输入将始终转换为浮点表示。这意味着输入应立即格式化为字符串:
$val = "11111111110000000000000000111";
$arr = str_split($val, 1); // break string in 3 character sets
$val_new = implode(",", $arr); // implode array with comma
echo $val_new;
答案 1 :(得分:1)
这是因为数字太大,所以php会自动将其转换为科学格式。你可以通过最初将数字定义为字符串来避免这种情况(通过将其放在引号内)...尝试将代码更改为:
$val = "11111111110000000000000000111";
并删除此行:
$val = (string)$val; // convert into a string
让我知道它是怎么回事。