You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery向PHP传递数字时出现舍入问题的原因咨询

大数字ID传递被舍入的原因及修复方案

问题原因

JavaScript的Number类型采用双精度浮点数标准,能精确表示的最大整数是2^53(即9007199254740992)。你的ID值12345678909728062已经超出这个范围,当PHP直接输出数字到JavaScript代码中时,JS会将其解析为Number类型,超出精度的部分会被自动舍入,导致最后两位丢失准确性。

修复方案

把ID以字符串形式传递,避免JS将其解析为超出精度的数字。修改你的JavaScript代码,给PHP输出的ID值加上引号:

$(document).ready(function() {
  $("button").click(function() {
    $(".r_div").load("php/items/purchase.php", {
      user_id: "<?php echo $id; ?>", // 添加引号将ID转为字符串
      fired_button: $(this).val()
    });
  });
});

这样传递到purchase.php后,通过$_POST['user_id']获取到的是完整的字符串值,不会出现舍入问题。如果PHP端需要将其作为整数处理,只要你的PHP运行在64位环境下,int类型可以直接容纳这个大数字;如果是32位环境,建议保持字符串格式处理,避免溢出。

内容的提问来源于stack exchange,提问作者William Bergman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:35:20