js实现千分符的精确方法

以下代码实现了数字千分符的转换:

因为我的项目用到这个函数的地方比较多,所以我挂载到了全局,比较方便使用。

Vue.prototype.$priceConversion = function (price) { // 处理价钱每三位加逗号,并且保留两位小数
  //强制保留两位小数
  var f = parseFloat(price);
  if (isNaN(f)) return false;
  var f = Math.round(price * 100) / 100;
  var s = f.toString();
  var rs = s.indexOf('.');
  if (rs < 0) {
    rs = s.length;
    s += '.';
  }
  while (s.length < (rs + 1) + 2) {
    s += '0';
  }
  //每三位用一个逗号隔开
  var leftNum=s.split(".")[0];
  var rightNum="."+s.split(".")[1];
  var result;
  //定义数组记录截取后的价格
  var resultArray=new Array();
  if(leftNum.length>3){
    var i=true;
    while (i){
      resultArray.push(leftNum.slice(-3));
      leftNum=leftNum.slice(0,leftNum.length-3);
      if(leftNum.length<4){
          i=false;
      }
    }
    //由于从后向前截取,所以从最后一个开始遍历并存到一个新的数组,顺序调换
    var sortArray=new Array();
    for(var i=resultArray.length-1;i>=0;i--){
      sortArray.push(resultArray[i]);
    }
    result=leftNum+","+sortArray.join(",")+rightNum;
  }else {
    result=s;
  }
  return result;
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值