我们正在使用付款API向我们提供客户令牌ID,然后我们就可以访问API上的个人数据。
客户令牌ID的示例是9253691936959900,但PHP将其转换为9.2536919369599E + 15(例如)。显然9.2536919369599E + 15是科学记数法,对我们没用,我们用它来调用API。
我们尝试了各种转换,例如number_format(9.2536919369599E + 15,16),但没有任何乐趣。
我们使用的是32位服务器和PHP 5.4.15。
我们已经耗尽了几乎所有选项,即使API的开发人员也在努力查看问题。他们确定客户令牌ID是作为字符串发送的,但由于某种原因,我们的系统将其解释为整数并将其转换为科学记数法。
非常感谢任何帮助或建议。
万分感谢:)
答案 0 :(得分:2)
PHP限制为最大整数,即2^63-1
= 9223372036854775807
(这适用于64位平台。其他平台可能远低于此值。)
任何大于max的数字都将转换为浮点数。
你几乎没有选择:
2^63
答案 1 :(得分:-1)
如果您的API提供程序以JSON格式返回密钥:
$key = '{"key":999999999999999999999999999999999999999999999999999999}' ;
$a = json_decode($key, true, 2 , JSON_BIGINT_AS_STRING);
print $a['key'];
以上打印结果为:99999999999999999999999999999999999999999999999999999999