我有这个问题:
// 7788778877887786660462040644602088666448 (10) = 9mwjmtyko1mpect1brz2exoncc (36)
$a = 7788778877887786660462040644602088666450 - 2;
echo $a."<br>"; // prints 7.7887788778878E+39
$b = "9mwjmtyko1mpect1brz2exoncc";
echo base_convert($b, 36, 10)."<br>"; //prints 7788778877887786660462040644602088666448
我知道为什么$a
打印到7.7887788778878E+39
,这是因为$a
的值超过了整数限制。
但是,当我将7.7887788778878E+39
转换为十进制时,为什么它不是9mwjmtyko1mpect1brz2exoncc
?它只打印确切的值(7788778877887786660462040644602088666448
)
如何将$a
打印到确切的值(忽略错误)?
7788778877887786660462040644602088666448
是另一种大于long / unsigned-long的数据类型吗?
答案 0 :(得分:1)
查看此页面上的一些答案: How to keep long int during PHP string conversion? 我认为你不能这样做,因为大值存储为浮点数。