千分位的写法

之前看到一道面试题,要求使用js写千分位,当时面试时有点懵逼,但是后来参考网上的写法与自己的思考,写出了千分位。

以下是通过网上的代码,本人进行了进一步优化后的代码,仅供参考。

相比较与网上的方法,我的方法实现了能对小数也进行处理的功能,不会出现如果数字是小数,分割千分位就是出错的问题。

首先在开始的时候对数字做处理,使用split方法将转化为string类型的字符串在“.”位处分割开,然后装进数组中

然后将前半部分(整数部分)反转过来

使用循环判断长度,三位长度就增加一个逗号。

再将其转化为数字并在此反转

这时候要判断之前的数是否为整数,如果不是整数,就将arr【1】(小数部分)加在后面即可。

在控制台打印出最后的成果。

当然,不能忘记要有返回值,所以return是必须的。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>千分位</title>
</head>
<body>

</body>
<script type="text/javascript">
    function parseNum(number){
        var arr =  String(number).split(".");
        //定义一个数组,将要分割的数组转为字符串并判断时候为整数,小数位使用split在小数点处分割开
        var list = arr[0].split('').reverse();
        //定义list来装分割出的整数部分,并转化为数组,使用reverse方法将其反转
        for(var i = 0; i < list.length; i++){
            //定义变量,判断list的长度
            if(i % 4 == 3){
                //当长度为三位时,使用splice方法增加逗号。splice(位置,0(增加),增加的东西)
                list.splice(i, 0, ',');
            }
        }
        list = list.reverse().join('');
        // 将list在反转过来并使用join的方法将其变为数字
        if(arr[1] !== undefined){
            //当小数位不为undefined值时(有小数)
            list = list + '.' + arr[1];

        }
        return list;
    }

    console.log(parseNum(1234567890.111));

</script>
</html>

 

转载于:https://www.cnblogs.com/hhb-02-19/p/7159674.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值