我有一个很大的数字 [987654321999999],我想将其传递给 jquery,但它返回带有科学记数法的大数字 [9.87654322E+14]。如何在没有科学记数法的情况下将大数字发送到jquery?
<小时/>PHP 函数
public function actionCalPrice()
{
$totalPrice = 987654321999999;
echo CJSON::encode($totalPrice);
}
在 JQuery 中
$.ajax({
type: "POST",
url: "<?php echo Yii::app()->createUrl('items/calPrice');?>",
data:{ajax:ajax},
dataType: "json",
success: function(data) {
alert(data);
}
});
最佳答案
处理大整数时,最好使用字符串而不是整数。
public function actionCalPrice()
{
$totalPrice = "987654321999999";
echo CJSON::encode($totalPrice);
}
或者如果您无法在数字查找 sprintf 周围加上引号以进行其他格式设置。
public function actionCalPrice()
{
$totalPrice = 987654321999999;
echo CJSON::encode(rtrim(sprintf('%.20F', $totalPrice),'0'));
}
但是,您的 Javascript 在 32 位操作系统/应用程序上的执行方式会有所不同。
您想要的 Javascript 输出是什么?
此外,如果您的 $totalPrice 实际上是一个变量而不是常量,例如根据其他变量计算价格,我建议您研究一下 PHP 的 bcmath。 http://php.net/manual/en/book.bc.php
关于javascript - 从php发送大量数字到jquery,不带科学计数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24886369/