js实现千分符和保留几位小数

news/2024/7/19 13:14:05 标签: javascript, js, 转化, 千分符

js实现千分符转化

function fmoney(s, n)

                {
                    n = n > 0 && n <= 20 ? n : 2;
                    s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
                    var l = s.split('.') [0].split('').reverse(),
                        r = s.split('.') [1];
                    var  t = '';
                    for (var i = 0; i < l.length; i++)
                    {
                        t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? ',' : '');
                    }
                    return t.split('').reverse().join('') + '.' + r;

                }


使用var amount = fmoney(123456.78,2);

console.log(amount);

结果:123,456.78

但是结果会四舍五入

比如

var amount = fmoney(123456.789,2);

console.log(amount);

结果:123,456.79


如果只截取两位小数,不进行四舍五入

var amount = fmoney(123456.568789,5);//保留5位小数

amount = amount.substring(0,amount.lastIndexOf('.')+3);//截取两位小数

console.log(amount);

结果:123,456.56



修改fmoney函数,不让结果四舍五入

function fmoney(s, n)
{
  n = n > 0 && n <= 20 ? n : 2;
  s = parseFloat((s + '').replace(/[^\d\.-]/g, '')) + '';
  var l = s.split('.') [0].split('').reverse(),
  r = s.split('.') [1];
  var t = '';
  for (var i = 0; i < l.length; i++)
  {
    t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? ',' : '');
  }
  if (!r) {
    r = '0';
  }
  if (r.length < n) {
    for (var i = r.length; i < n; i++) {
      r += '0';
    }
  }else{
     r=r.substr(0,n);
  }
  return t.split('').reverse().join('') + '.' + r;
}

结果

fmoney(1.555,2)
"1.55"
fmoney(1.5,2)
"1.50"
fmoney(1.9999,2)
"1.99"
fmoney(1,2)
"1.00"


http://www.niftyadmin.cn/n/797911.html

相关文章

js判断移动设备 并跳转到手机版

判断移动设备一般使用UA 在<head>里添加经过验证可以判断移动端设备. <script type"text/javascript"> if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { window.location.href "h…

BZOJ3544: [ONTAK2010]Creative Accounting

题解: 假数据结构题 很明显在模意义下 比当前值稍微大一点的话 他模意义下的差值一定是最大的 那么我们按照这个思路贪心的话 只要每次查询当前前缀和与后继节点即可 若不存在则取最小的 set乱搞即可 #include <bits/stdc.h> const int MAXN2e510; #define ll lo…

js和zclip实现复制内容到剪贴板效果

要实现点击"复制",可以把体验码复制到剪贴板,效果如下: 有两种实现方法,第一种纯js,但是不兼容safari,还有一种就是使用jquery的插件zclip,这个插件依赖flash,用户浏览器需要安装有flash才会正常运行 方法一: //复制功能 var code$(#vip-code); var copyBtn$(.copy-…

懒加载jquery.lazyload.js

首先引入jquery文件和懒加载文件 <script type"text/javascript" src"http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script> <script type"text/javascript" src"http://www.w3cways.com/demo/LazyLoad/js/jquery…

预加载时的进度条

这个是真实的数据加载显示的进度条 不是单纯的当一个gif的loading图片 使用的是微信提供的资源预加载方法 http://ad.weixin.qq.com/learn/2-3-3--%E9%80%9A%E7%94%A8%E5%BA%93 结合实例 首先引入 <script src"http://cdnjs.gtimg.com/cdnjs/libs/wxmoment/0.0.…

计算距离当前时间相隔的天数,小时数,分数,秒数

使用时间戳计算距离当前时间相隔的天数,小时数,分数,秒数 $end_day (strtotime($value[end_time])-time())/(60*60*24); 计算距离当前时间的天数 (strtotime($item[end_time])-time())/3600) 计算距离当前时间的小时数 <?php $one strtotime(2011-12-08 07:02:40);//开…

jQuery异步加载数据并添加事件示例

当时项目是通过树形栏进行权限控制的&#xff0c;管理员可以对从数据库去的数据动态生成树形栏进行增删改查操作&#xff0c;可是用$(".XX").click();方法是不行的。1、之前用的是jq1.4.3 ,jq1.7一下都可以使用live()方法&#xff0c;来实现该功能 ?123$(‘#div).l…

从数组中随机选择一条

/**从数组中随机取一个数据出来*/ function getRandom(arr) {var len arr.length;var i Math.ceil(Math.random() * (len ))%len;return arr[i]; } var wxarr [{title:我们一起理财吧~送你理财特权&#xff0c;1个月定存年化收益10%&#xff01;,content:我在桔子理财已安全…