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

如何在jQuery中拆分无小数点的18位小数数字并分别展示?

解决jQuery中拆分长数字字符串为整数部分和18位小数部分的问题

我来帮你搞定这个问题!咱们不用把接口返回的长字符串转成数字(转数字很容易触发你遇到的科学计数法问题),直接用字符串操作就能完美解决——毕竟接口返回的本身就是字符串格式的数字,直接处理最稳妥。

核心思路

你的需求是固定拆分出最后18位作为小数部分,剩下的所有字符作为整数部分,用JavaScript字符串的slice方法就能轻松实现:

  • 整数部分:取字符串从开头到「总长度-18」的位置
  • 小数部分:直接取字符串的最后18位

修改后的完整代码

替换你原来的变量赋值部分,最终代码如下:

// 接口返回的无小数点字符串
var original = data['result'];

// 拆分整数部分和小数部分
var strLength = original.length;
var beforeDecimal = original.slice(0, strLength - 18);
// 处理特殊情况:如果原字符串长度刚好是18(整数部分为0),确保显示"0"而非空字符串
if (!beforeDecimal) {
  beforeDecimal = "0";
}
var afterDecimal = original.slice(-18); // 取最后18位字符

// 渲染到页面对应元素
$(".beforeDecimal").html(beforeDecimal);
$(".afterDecimal").html(afterDecimal);

为什么这个方法靠谱?

  • 全程操作字符串,彻底避开了数字转科学计数法的坑,不管数字多长都能精准拆分
  • slice(-18)是JavaScript字符串的便捷写法,直接取最后18个字符,逻辑非常直观
  • 加了空值判断,能处理整数部分为0的特殊场景(比如原字符串就是18个0,此时整数部分会显示"0"而非空)

测试你的示例场景

当original是"100000000000000000000"时:

  • 字符串总长度是21,strLength - 18 = 3,beforeDecimal通过slice(0,3)得到"100"
  • afterDecimal通过slice(-18)得到最后18个字符"000000000000000000"
    完全匹配你想要的展示效果!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:59:19