资讯专栏INFORMATION COLUMN

给一个数值加千位分隔号

lunaticf / 1647人阅读

摘要:递归思路是在小数点前数位数如果没有小数点则以最后一位计算,添加,递归,在第一个逗号前数位再添加。

想要的效果:
123456789.123 --> 123,456,789.123
直接贴代码:

function splitK(num) {
  var decimal = num.split(".")[1] || "";//小数部分
  var tempArr = [];
  var revNumArr = num.split(".")[0].split("").reverse();//倒序
  for (i in revNumArr){
    tempArr.push(revNumArr[i]);
    if((i+1)%3 === 0 && i != revNumArr.length-1){
      tempArr.push(",");
    }
  }
  var zs = tempArr.reverse().join("");//整数部分
  return decimal?zs+"."+decimal:zs;
}
var num = "123456789.123";
console.log(splitK(num));
//输出:123,456,789.123
    

思路很简单:
先分离出小数部分;
对整数部分逆序为数组;
每三个数字插入一个逗号,如果是3的倍数位则最后一个不插入;
再逆序回来,拼接小数部分(如果有的话)。

递归:

function splitK(num) {
    var temp = num;
    var i = ((num.indexOf(",")>0)?num.indexOf(","):num.indexOf("."));
    i = (i<0)?(num.length-3):(i-3);
    num = num.substring(0,i)+","+num.substring(i);
    if(i<1){return temp;}else {return splitK(num);}
}

var num = "123456789.123";
console.log(splitK(num));

思路是:在小数点前数3位数(如果没有小数点则以最后一位计算),添加",",递归,在第一个逗号前数3位再添加","

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79947.html

相关文章

  • 原生js之千位分隔符(包括小数情况)

    摘要:同学前端面试遇到这么一个题目给数字添加千分位分隔符一拿到他给的面试题,感觉挺容易的,不过等自己写后发现非常考虑逻辑,以及思维能力我是小白上网百度了一波全是用正则表达式来解决的,正则这块我只懂皮毛,所以感觉有点看不明白,不过这个博客解释挺清楚 同学前端面试遇到这么一个题目 :给数字添加千分位分隔符 一拿到他给的面试题,感觉挺容易的,不过等自己写后发现非常考虑逻辑,以及思维能力(我是小白)...

    msup 评论0 收藏0
  • 数字的千位分隔符实现

    摘要:常常见到这种场景,数字比较大时每隔位用逗号分隔开思路就是如果是小数的话先用分开得到整数部分,然后反转整数部分的字符串用正则每个数字加一个逗号然后再反转回去拼接上小数部分。 常常见到这种场景,数字比较大时每隔3位用逗号分隔开 思路就是如果是小数的话先用split分开得到整数部分,然后反转整数部分的字符串用正则每3个数字加一个逗号然后再反转回去拼接上小数部分。 在网上看到了一种实现代码,这...

    ssshooter 评论0 收藏0
  • js实现千位分隔

    function commafy(num) { num = num + ; var reg = /(-?d+)(d{3})/; if(reg.test(num)){ num = num.replace(reg, $1,$2); } return num; } commafy(1234);

    NeverSayNever 评论0 收藏0
  • Java™ 教程(扫描)

    扫描 编程I/O通常涉及转换人们喜欢使用的整齐格式的数据,为了帮助你完成这些工作,Java平台提供了两个API,扫描器API将输入分解为与数据位相关联的单个标记,格式化API将数据组装成格式良好、可读的形式。 Scanner类型的对象对于将格式化输入分解为标记并根据其数据类型转换单个标记非常有用。 将输入分解为标记 默认情况下,扫描器使用空格分隔标记(空格字符包括空格、制表符和行终止符,有关完整列...

    dantezhao 评论0 收藏0
  • [PHP源码阅读]number_format函数

    摘要:上次讲到是如何解析大整数的,一笔带过了的处理,再详细阅读该函数的源码,以下是小分析。总结阅读完这个函数的源码,学习到的是浮动数与字符串的互相转换的实现细节,字符串与浮点数之间的关系较复杂,之后还要继续学习。 上次讲到PHP是如何解析大整数的,一笔带过了number_format的处理,再详细阅读该函数的源码,以下是小分析。 函数原型 string number_format ( flo...

    itvincent 评论0 收藏0

发表评论

0条评论

lunaticf

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<