JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去…

标签: javascript
11人阅读 评论(0) 收藏 举报
分类:
    <script type = "text/javascript">
		function number_format(number, decimals, dec_point, thousands_sep,roundtag) {
		    /*
		    * 参数说明:
		    * number:要格式化的数字
		    * decimals:保留几位小数
		    * dec_point:小数点符号
		    * thousands_sep:千分位符号
		    * roundtag:舍入参数,默认 "ceil" 向上取,"floor"向下取,"round" 四舍五入
		    * */
		    number = (number + '').replace(/[^0-9+-Ee.]/g, '');
		    roundtag = roundtag || "ceil"; //"ceil","floor","round"
		    var n = !isFinite(+number) ? 0 : +number,
		        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
		        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
		        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
		        s = '',
		        toFixedFix = function (n, prec) {
		 
		            var k = Math.pow(10, prec);
		            console.log();
		 
		            return '' + parseFloat(Math[roundtag](parseFloat((n * k).toFixed(prec*2))).toFixed(prec*2)) / k;
		        };
		    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
		    var re = /(-?\d+)(\d{3})/;
		    while (re.test(s[0])) {
		        s[0] = s[0].replace(re, "$1" + sep + "$2");
		    }
		 
		    if ((s[1] || '').length < prec) {
		        s[1] = s[1] || '';
		        s[1] += new Array(prec - s[1].length + 1).join('0');
		    }
		    return s.join(dec);
		}
    </script>
console.log(number_format(2, 2, ".", ","))//"2.00"
console.log(number_format(3.7, 2, ".", ","))//"3.70"
console.log(number_format(3, 0, ".", ",")) //"3"
console.log(number_format(9.0312, 2, ".", ","))//"9.03"
console.log(number_format(9.00, 2, ".", ","))//"9.00"
console.log(number_format(39.715001, 2, ".", ",", "floor")) //"39.71"
console.log(number_format(9.7, 2, ".", ","))//"9.70"
console.log(number_format(39.7, 2, ".", ","))//"39.70"
console.log(number_format(9.70001, 2, ".", ","))//"9.71"
console.log(number_format(39.70001, 2, ".", ","))//"39.71"
console.log(number_format(9996.03, 2, ".", ","))//"9996.03"
console.log(number_format(1.797, 3, ".", ",", "floor"))//"1.797"


查看评论

数字成像系统

数字成像系统暨Image signal processor原理培训,涵盖成像系统基础5讲:1. 数字成像系统介绍2. CMOS image sensor基础3. 镜头光学基础4. 颜色科学基础5. ISP 信号处理基础,以及ISP各模块:6.黑电平与线性化7.Green Imbalance8:9.坏点消除等21讲,3A技术以及图像质量评价与调校6讲
  • 2017年10月14日 07:20

js 数字格式化(千分位,保留几位小数,四舍五入)

function formatNumber(num,cent,isThousand) { num = num.toString().replace(/\$|\,/g,''); ...
  • qq_32534855
  • qq_32534855
  • 2017-03-17 14:41:45
  • 1467

千分位格式化 保留两位小数

/**          * 数字千分位加','并保留两位小数          * @param num 需要转化的数字          * @returns {string} 返回的结果    ...
  • hongc93
  • hongc93
  • 2016-12-19 23:51:30
  • 519

JAVA数字千分位和小数点的现实(处理金额问题)

JAVA数字千分位和小数点的现实(处理金额问题)
  • qq_28867949
  • qq_28867949
  • 2017-06-01 15:51:02
  • 3960

js 实现数值的千分位及保存小数方法

/** * 将数值四舍五入后格式化. * * @param num 数值(Number或者String) * @param cent 要...
  • lyd518
  • lyd518
  • 2014-03-05 17:34:14
  • 4804

关于数字千分位和带两位小数的显示

String str = DecimalFormat.getNumberInstance().format(1245600000);DecimalFormat df = new DecimalForm...
  • aicpzl
  • aicpzl
  • 2017-01-03 13:39:36
  • 901

InputFilter工具类,限制小数位数,并实时千分位金额(格式化)

今天回头看了看昨天的代码,才发现上篇总结的很不到位,存在很多bug,在这里稍微补充一下,   来个加强版本    上篇的不足之处:        1 未做小数相关的逻辑编写        2 没有考虑...
  • huiling815
  • huiling815
  • 2016-09-06 15:15:36
  • 1158

【JqGrid】JqGrid金额格式化、计算处理

1、从数据库中查询出来的金额格式显示是这样: 2、需要对金额进行处理:保留2位小数;还要进行计算处理;这时需要添加如下代码: 事件如下: 代码复制: formatPerson:functi...
  • zsq520520
  • zsq520520
  • 2016-11-30 15:14:57
  • 2507

extjs grid 中显示金额时使用金额单位

extjs grid 中显示金额时使用金额单位
  • jfok
  • jfok
  • 2014-06-25 14:42:28
  • 4884

js添加千位分隔符,并保留2位小数

function milliFormat(s){//添加千位符 if(/[^0-9\.]/.test(s)) return "invalid value"; s=s.replace(/^(\d*)...
  • sjzs5590
  • sjzs5590
  • 2012-03-09 16:23:17
  • 4465
    个人资料
    持之以恒
    等级:
    访问量: 9765
    积分: 638
    排名: 8万+