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

如何在jQuery中对两个JSON数值求和并去除小数部分?

解决两个DOGE捐赠金额相加并去除小数的问题

没问题,咱们可以通过调整你的jQuery代码,先确保两个异步请求都完成,再对数值进行处理和计算。这里有个完整的解决方案:

核心思路

  1. 因为$.getJSON是异步请求,我们需要等待两个请求都成功返回数据后再进行计算,避免出现其中一个数据还没拿到就执行相加的情况。
  2. 将返回的字符串类型金额转换为数字,再用Math.floor()去除小数部分(如果金额都是正数的话,parseInt()也能达到同样效果,但Math.floor()语义更清晰)。
  3. 计算总和后,把各个数值分别渲染到对应的div中,也可以新增一个div显示总和。

完整代码示例

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
// 先发起两个请求并保存请求对象
var pot1Request = $.getJSON("https://www.chain.so/api/v2/address/DOGE/DK1i69bM3M3GutjmHBTf7HLjT5o3naWBEk");
var pot2Request = $.getJSON("https://www.chain.so/api/v2/address/DOGE/DLztFgLx33AMMiWFvLkbwy3cDdiuE9ZTrS");

// 等待两个请求都完成后执行回调
$.when(pot1Request, pot2Request).done(function(pot1Response, pot2Response) {
    // 提取金额并处理:转数字 + 去除小数
    var pot1Amount = Math.floor(Number(pot1Response[0].data.received_value));
    var pot2Amount = Math.floor(Number(pot2Response[0].data.received_value));
    
    // 计算总和
    var totalAmount = pot1Amount + pot2Amount;
    
    // 更新页面上的div内容
    $('#donation_pot_1').text(pot1Amount);
    $('#donation_pot_2').text(pot2Amount);
    // 新增一个div显示总和(如果需要的话)
    $('#total_donations').text(totalAmount);
})
// 可选:处理请求失败的情况
.fail(function() {
    alert("获取捐赠数据失败,请稍后重试!");
});
</script>

<div id="donation_pot_1"></div>
<div id="donation_pot_2"></div>
<!-- 新增显示总和的div -->
<div id="total_donations"></div>

代码解释

  • $.when():jQuery提供的方法,用来等待多个Deferred对象(这里就是两个$.getJSON返回的请求对象)都完成后,再执行.done()里的回调函数。
  • Number():把API返回的字符串类型金额转换为数字类型,确保能进行数学运算。
  • Math.floor():向下取整,直接去除小数部分(比如123.45会变成123)。如果你的金额可能有负数(虽然捐赠场景不太可能),可以用Math.trunc()来直接截断小数部分,效果更通用。
  • .fail():可选的错误处理,当其中一个请求失败时触发,提升用户体验。

内容的提问来源于stack exchange,提问作者Chris 'Pig' Hill

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:04:53