jQuery去除小数点后数字:round()/toFixed()无效,求问题排查
问题分析与解决
先拆解你代码里的核心问题:
- 无效操作与笔误
- 最后一行的
numeralValUnit是拼写错误,应为numeralValUni;且你调用toFixed()后未将结果赋值给变量,等于白执行。
- 最后一行的
- numeral库使用错误
- 直接取
numeral(resultUNi)._value是拿库内部存储的原始数字,要实现整数显示,得用numeral官方提供的格式化方法,而非直接取内部值。
- 直接取
- 冗余变量干扰
applying_credit_final初始是字符串"applying_credit",经parseFloat转换后必然是NaN,会导致后续if条件大概率不生效,这个变量对当前逻辑毫无意义。
修正后的代码示例
如果你的需求是把applying_credit除以1000后显示为整数(比如1500而非1500.00),可以这么改:
var applying_credit = thisPointer.entity['applying_credit']; applying_credit = parseFloat(applying_credit); if (!isNaN(applying_credit)) { // 直接计算取整 var resultUNi = Math.round(applying_credit / 1000); // 用numeral格式化出整数格式的字符串 var formattedResult = numeral(resultUNi).format('0'); console.log(formattedResult); // 输出1500 }
关键说明
- 用
Math.round()取整比toFixed()更直接,前者返回数字类型的整数,后者返回字符串;如果是为了显示,直接用numeral的format('0')就能得到不带小数的结果。 - 去掉冗余的
applying_credit_final变量,避免干扰逻辑判断。 - 不要直接访问numeral的
_value内部属性,依赖官方API才是正确用法。
内容的提问来源于stack exchange,提问作者Gajka42
相关产品推荐
相关产品推荐

