【发布时间】:2013-06-05 08:41:54
【问题描述】:
我们使用支付 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 是作为字符串发送的,但出于某种原因,我们的系统将其解释为整数并将其转换为科学记数法。
任何帮助或建议将不胜感激。
谢谢一百万:)
【问题讨论】:
-
您可以尝试在 php 收到值时强制它为字符串,即 $var = (string) $var2;
-
@Martin 它已经在 $var2 中转换为科学记数法,所以实际上您正在转换 $var2 的科学记数法表示,而不是大整数。
-
@bolbol 他不能在发送时而不是在接收时强制转换为字符串吗?还是此时仍注明?
-
@Martin 应该是解决方案。他应该在将其存储在变量中之前对其进行转换,否则您将丢失数字的 int 表示。
标签: php string api 64-bit 32-bit