我已经在我的笔记本电脑上安装了PHP 5.5,他们正在运行Windows。 我正在访问Smartsheet API,我应该得到一个列号为18位数字(有时是17位)。但我得到一个科学数字:
1.5441916385627E+15
,而不是1544191638562692
我在Ubuntu服务器环境中运行脚本,我看到1544191638562692.同样,在OS X Maverick环境中运行,它与整数格式相同。
我正在寻找这件事,似乎是精确的。
如果我在php中设置,OS X Maverick环境的精度14如下:
<?php
ini_set('precision', 14);
echo (float)$col->id;
// 1.5441916385627E+15
?>
我也得到了科学数字。
任何人都可以帮我一个想法吗?
答案 0 :(得分:1)
正如评论中提到的,这听起来像是运行32位PHP的问题。 Smartsheet确实提供了一些sample PHP code来帮助您开始使用API。在这些示例中,文档建议您将ID视为32位PHP中的字符串:
https://github.com/smartsheet-platform/samples/tree/master/php/1-HelloSmartsheet#dependencies
答案 1 :(得分:0)
您可以使用PHP中的格式化字符串函数在所有计算机上以相同的方式输出数字,有关文档,请参阅http://nl1.php.net/manual/en/function.sprintf.php。
因此,如果你想整数整数,你会使用:
printf("%u", $number);
答案 2 :(得分:0)
有一种方法可以做到这一点,例如,将JSON转换为数组我必须指定JSON_BIGINT_AS_STRING:
$ColumnsArray = json_decode($data, true,515,JSON_BIGINT_AS_STRING);