编程语言
首页 > 编程语言> > PHP:将64位整数转换为字符串

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