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

jQuery脚本无法显示圆周节距计算结果,请求代码修复

修复圆周节距(Circular Pitch)计算脚本的NaN问题

问题根源

你的脚本返回NaN有两个核心原因:

  • 错误的圆周率获取方式:var phi = parseInt($('3.14').val()); 中$('3.14')不是有效的jQuery选择器,3.14是固定常量,不需要从DOM元素读取。
  • 未处理非法输入:当输入框为空或输入非数字时,parseInt()会返回NaN,导致后续计算结果也变成NaN;另外parseInt会丢弃小数部分,可能影响计算精度。

修复后的代码

以下是修正后的完整脚本,同时优化了精度和异常处理:

//Circular Pitch
$(document).ready(function(){
    $('input[type="text"]').keyup(function () {
        // 获取输入值,转为浮点数,空值/非数字则设为0
        const valD = parseFloat($('.cpPitchDiameter').val()) || 0;
        const valT = parseFloat($('.cpAot').val()) || 0;
        // 使用原生Math.PI获取更精确的圆周率,也可以直接写3.14
        const phi = Math.PI;
        
        // 避免除以0的情况,同时执行公式计算
        const sum = valT !== 0 ? (phi * valD) / valT : 0;
        
        // 可选:将结果保留两位小数,提升可读性
        $("input#resultCP").val(sum.toFixed(2));
    });
});

关键修复点说明

  1. 直接定义圆周率:用const phi = Math.PI获取浏览器内置的高精度圆周率(约3.1415926535),如果需要固定3.14,替换为const phi = 3.14即可。
  2. 改用parseFloat处理输入:适配可能的小数输入场景,避免parseInt丢弃小数导致的精度损失。
  3. 非法输入兜底:通过|| 0将空值/非数字输入转为0,避免NaN污染计算结果。
  4. 除以0防护:判断valT不为0时才执行除法,避免出现Infinity结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:30:58