PHP:将64位整数转换为字符串
作者:互联网
我正在尝试在字符串变量中使用硬编码的64位整数.
Simplfied我想做这样的事情:
$i = 76561197961384956;
$s = "i = $i";
哪个应该导致s:
i = 76561197961384956
这显然不适用于PHP将大整数浮动,因此s是:
i = 7.65611979614E+16
虽然其他几个方法如cast等失败,但我找到了number_format()并使用它:
$s = "i = " . number_format($i, 0, '.', '');
但这导致s:
i = 76561197961384960
看起来像一个近似问题,但如何解决这个问题?
解决方法:
你失去了赋值的精度,而不是字符串转换.如果这个变量的值实际上是硬编码的,而你无法改变它,那么你无能为力.
像这样的一行:
$i = 76561197961384956;
总会失去精确度.如果您需要保留整个内容,将其存储到字符串中,则不能将其存储为类似的int并保留所有数字.
标签:php,long-integer,casting,64-bit 来源: https://codeday.me/bug/20190827/1743524.html