千分位的写法

之前看到一道面试题,要求使用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>

 

posted @ 2017-07-13 11:46  文墨挚爱  阅读(1645)  评论(0编辑  收藏  举报