如何在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
相关产品推荐
相关产品推荐

