js封装数字转科学计数法显示

function moneySplit (val){
  if (!val) return val;
    let logo=""; // 用于记录是正值还是负值
  let num = val;
    if(Number(val)<0){
        logo="-";
        num = val.split('-')[1]; // 将负数转正,如果不转正,则下面获取它的length时,会由于有个负号,使得长度+1,最终加逗号位置出错
    }
    
    const result = num.split("");// 将数字转化为了数组,便于使用数组中的splice方法插入逗号
    let position = result.indexOf(".");// 获取小数点的位置,根据有无小数点确定position最终值进入添加逗号环节
    position = position !==-1 ? position : result.length;// 因为只需考虑整数部分插入逗号,所以需要考虑有没有逗号。有逗号则不等于-1,减去逗号位置,则是下标0~position就是整数部分;若不是小数,则num原本就是整数,直接取其length即可
    while(position>3){// 只要下标值大于2,说明前面还可以插入“,”,则继续循环
        position-=3;// 下标前移3位,然后在这个下标对应的元素后面插入逗号
        result.splice(position,0,",");
     }
        return logo + result.join("");// 数组转换为字符串,前面+logo,若为负数则拼接个符号,否则拼接空字符
    };

注意:方法接收的是字符串类型

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值