微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP:如何将bigint从int转换为字符串?

我想要将大型整数转换成他们的全部字符串派生词.

例如.

$bigint = 9999999999999999999;
$bigint_string = (string) $bigint;
var_dump($bigint_string);

输出

string(7) "1.0e+19"

但是我需要

string(19) "9999999999999999999"

请不要告诉我,我应该最初将$bigint值设置为字符串.这不是一个选择.我真的很困惑,不知道是否有可能吗?

你实际上应该确保你键入你的意思:
$bigint = 9999999999999999999;

不是PHP整数,但是float:

float(1.0E+19)

如果你会做的

$bigint = (int) 9999999999999999999;

实际上你会设置一个整数,但不会是你可能预期的数字:

int(-8446744073709551616)

把它变成字符串是没有问题的,你可能已经猜到了.所以当你把数字写入代码中时,请注意你实际写的是什么意思.

再次看到这一行:

$bigint = 9999999999999999999;

尝试了解你实际写的内容.它不是一个整数,因为PHP会把它变成一个浮点数.请参见示例#4 integer manual page中64位系统上的整数溢出.

如果你需要更高的精度,结帐GNU Multiple Precision,它可能有你要找的东西.但是,这不会改变如何在PHP中编写数字:

$bigint = gmp_init("9999999999999999999");
$bigint_string = gmp_strval($bigint);
var_dump($bigint,$bigint_string);

输出

resource(4) of type (GMP integer)
string(19) "9999999999999999999"

原文地址:https://www.jb51.cc/php/130627.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐