js 实现数值的千分位及保存小数方法(推荐)

实例如下:

/**
    * 将数值四舍五入后格式化.
    *
    * @param num 数值(Number或者String)
    * @param cent 要保留的小数位(Number)
    * @param isThousand 是否需要千分位 0:不需要,1:需要(数值类型);
    * @return 格式的字符串,如'1,234,567.45'
    * @type String
    */
   function formatNumber(num,cent,isThousand) {
    num = num.toString().replace(/\$|\,/g,'');

    // 检查传入数值为数值类型
     if(isNaN(num))
      num = "0";

    // 获取符号(正/负数)
    sign = (num == (num = Math.abs(num)));

    num = Math.floor(num*Math.pow(10,cent)+0.50000000001); // 把指定的小数位先转换成整数.多余的小数位四舍五入
    cents = num%Math.pow(10,cent);       // 求出小数位数值
    num = Math.floor(num/Math.pow(10,cent)).toString();  // 求出整数位数值
    cents = cents.toString();        // 把小数位转换成字符串,以便求小数位长度

    // 补足小数位到指定的位数
    while(cents.length<cent)
     cents = "0" + cents;

    if(isThousand) {
     // 对整数部分进行千分位格式化.
     for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
      num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
    }

    if (cent > 0)
     return (((sign)?'':'-') + num + '.' + cents);
    else
     return (((sign)?'':'-') + num);
   }

以上这篇js 实现数值的千分位及保存小数方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • JS的千分位算法实现思路

    复制代码 代码如下: function commafy() { var num = document.getElementById("NumA").value; //1.先去除空格,判断是否空值和非数 num = num + ""; num = num.replace(/[ ]/g, ""); if (num == "") { alert("空值,结束"); return; } if (isNaN(num)

  • JS 添加千分位与去掉千分位的示例

    复制代码 代码如下: function commafyback(num) { var x = num.split(','); return parseFloat(x.join("")); } function commafy(num) { num = num.toFixed(2) +""; var re=/(-?/d+)(/d{3})/ while(re.test(num)){ num=num.replace(re,"$1,$2"); } ret

  • Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)

    在项目里碰到需要把类似'450000'的数字转换为会计记账所用的格式,'450,000.00',分隔千分位和小数点后不够两位数时自动补齐,已下记录几种实现的方式 ps:如果不考虑后面的小数点,最快捷的方法: "12345678".replace(/[0-9]+?(?=(?:([0-9]{3}))+$)/g,function(a){return a+','}); //输出 12 345 678 1.用循环的方式实现 function formatNum(str){ var newStr

  • 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.lengt

  • 千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码

    最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改  之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持用逗号隔开 0-9位 逗号隔开 JS代码如下: 复制代码 代码如下: /**         * JS格式化         * @param number 要格式化的数字         * @param d [0-9]位 逗号隔开         */ function numFormat(nu

  • js格式化金额可选是否带千分位以及保留精度

    js格式化金额,可选是否带千分位,可选保留精度,也是网上搜到的,但是使用没问题 复制代码 代码如下: /* 将数值四舍五入后格式化. @param num 数值(Number或者String) @param cent 要保留的小数位(Number) @param isThousand 是否需要千分位 0:不需要,1:需要(数值类型); @return 格式的字符串,如'1,234,567.45' @type String */ function formatNumber(num,cent,isT

  • JavaScript数值千分位格式化的两种简单实现方法

    在对数值进行格式化的时候,一个常见的问题是按照千分位格式化,网上对这个问题已经有很多种解决方法了,还可以利用Array.prototype.reduce方法来实现千分位格式化. function formatNumber(num) { if (isNaN(num)) { throw new TypeError("num is not a number"); } var groups = (/([\-\+]?)(\d*)(\.\d+)?/g).exec("" + nu

  • js添加千分位的实现代码(超简单)

    JS 添加千分位,测试可以使用 <script language="javascript" type="text/javascript"> function comdify(n){ var re=/\d{1,3}(?=(\d{3})+$)/g; var n1=n.replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){return s1.replace(re,"$&,")+s2;}); re

  • JS实现数字格式千分位相互转换方法

    实例如下: /** * 数字格式转换成千分位 *@param{Object}num */ function commafy(num){ if((num+"").Trim()==""){ return""; } if(isNaN(num)){ return""; } num = num+""; if(/^.*\..*$/.test(num)){ varpointIndex =num.lastIndexOf(&

  • js 实现数值的千分位及保存小数方法(推荐)

    实例如下: /** * 将数值四舍五入后格式化. * * @param num 数值(Number或者String) * @param cent 要保留的小数位(Number) * @param isThousand 是否需要千分位 0:不需要,1:需要(数值类型); * @return 格式的字符串,如'1,234,567.45' * @type String */ function formatNumber(num,cent,isThousand) { num = num.toString(

  • JS基于正则实现数字千分位用逗号分隔的方法

    本文实例讲述了JS基于正则实现数字千分位用逗号分隔的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js千分位逗号隔开</title> </head> <body> <script > var a = 222122122.6754

  • asp下返回以千分位显示数字格式化的数值

    <% '****************************** '函数:comma(str) '参数:str,待处理的数字 '作者:阿里西西 '日期:2007/7/12 '描述:返回以千分位显示数字格式化的数值 '示例:<%=comma("120300")%> '****************************** function comma(str)  if not(isnumeric(str)) or str = 0 then  result = 

  • JS数字千分位格式化实现方法总结

    本文实例讲述了JS数字千分位格式化实现方法.分享给大家供大家参考,具体如下: 用js实现如下功能,将给定的数字转化成千分位的格式,如把"10000"转化成"10,000",并考虑到性能方面的因素. 一.首先想到的办法,将数字转换为字符串(toString())再打散成数组(split),如果直接数字转换为数组,就是一整个放进去了,不能单独取到每一位.然后通过循环,逐个倒着把数组中的元素插入到新数组的开头(unshift),第三次或三的倍数次,插入逗号,最后把新数组拼

  • js金额千分位的6种实现方法实例

    目录 方法一 数组分割法 方法二 字符截取法 方法三 求模法 方法四 正则表达式(先行断言) 方法五 通过Intl.NumberFormat 方法六 number.toLocaleString方式 总结 方法一 数组分割法 这种方法也是自己最容易想到的一种方式,通过将数组以点分割,然后按照3位一体进行字符的拼接 function format_with_array(number) { // 转为字符串,并按照.拆分 const arr = (number + '').split('.'); //

随机推荐