繁体   English   中英

在PHP中将大数字转换为可用字符串

[英]Converting large number into a usable string in PHP

我从API获取数据,它包含一个长数字,例如: 7979798798798798798798797987 我需要将这个数字放入一个URL,这样变量不需要是一个数字,但我确实需要它保持完整。 目前PHP正在自动将大数字转换为科学记数法。 我已经尝试了所有这些东西,比如sprintf,并尝试将其作为一个字符串,但它不适合我。

这是一个演示:

$myvar = 7979798798798798798798797987; //can't change this as this is from api

echo $myvar; // needs to print out 7979798798798798798798797987

如果PHP遇到一个超出整数类型边界的数字,它将被解释为一个浮点(而不是你所拥有的)int但float的精度有限,大约为14位数。

如果数字少于14位,您可以使用sprintf('%0.0f',$number) ;

在您的情况下,您需要使用源数据(json),因为您无法从其当前形式(浮点数)生成该数字的精确表示。

您可以使用JSON_BIGINT_AS_STRING中的JSON_BIGINT_AS_STRING选项

样本测试代码

<?php
$json = '{"number":7979798798798798798798797987, "data":"some other data"}';
$output=json_decode($json, false, 512, JSON_BIGINT_AS_STRING);
echo $output->number; \\output 7979798798798798798798797987
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM