文档章节

JavaScript格式化数字显示格式

壹峰
 壹峰
发布于 2017/02/04 23:17
字数 210
阅读 5
收藏 0
JavaScript格式化数字显示格式

/** 
 * 格式化数字显示方式  
 * 用法 
 * formatNumber(12345.999,'#,##0.00'); 
 * formatNumber(12345.999,'#,##0.##'); 
 * formatNumber(123,'000000'); 
 * @param num 
 * @param pattern 
 */  
function formatNumber(num,pattern){  
  var strarr = num?num.toString().split('.'):['0'];  
  var fmtarr = pattern?pattern.split('.'):[''];  
  var retstr='';  
  
  // 整数部分  
  var str = strarr[0];  
  var fmt = fmtarr[0];  
  var i = str.length-1;    
  var comma = false;  
  for(var f=fmt.length-1;f>=0;f--){  
    switch(fmt.substr(f,1)){  
      case '#':  
        if(i>=0 ) retstr = str.substr(i--,1) + retstr;  
        break;  
      case '0':  
        if(i>=0) retstr = str.substr(i--,1) + retstr;  
        else retstr = '0' + retstr;  
        break;  
      case ',':  
        comma = true;  
        retstr=','+retstr;  
        break;  
    }  
  }  
  if(i>=0){  
    if(comma){  
      var l = str.length;  
      for(;i>=0;i--){  
        retstr = str.substr(i,1) + retstr;  
        if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr;   
      }  
    }  
    else retstr = str.substr(0,i+1) + retstr;  
  }  
  
  retstr = retstr+'.';  
  // 处理小数部分  
  str=strarr.length>1?strarr[1]:'';  
  fmt=fmtarr.length>1?fmtarr[1]:'';  
  i=0;  
  for(var f=0;f<fmt.length;f++){  
    switch(fmt.substr(f,1)){  
      case '#':  
        if(i<str.length) retstr+=str.substr(i++,1);  
        break;  
      case '0':  
        if(i<str.length) retstr+= str.substr(i++,1);  
        else retstr+='0';  
        break;  
    }  
  }  
  return retstr.replace(/^,+/,'').replace(/\.$/,'');  
}

本文转载自:http://huqiji.iteye.com/blog/2276481

壹峰
粉丝 9
博文 595
码字总数 9582
作品 0
广州
其他
私信 提问
开发中常用的25个Javascript单行代码

下面为大家介绍我在开发中常用的30个Javascript单行代码,没有特别的顺序。 1.强制布尔值 要将变量强制转换为布尔值而不更改其值: 2.基于某个条件为对象设置属性 要使用spread运算符有条件地...

alentan
06/13
0
0
分享5个javascript的数字格式化函数

日期:2011/11/10 来源:GBin1.com Javascript没有任何内建的格式化函数,这里我们通过Google收集了5个javascript的数字格式化函数,希望对于大家的web开发能够带来方便。 十进制四舍五入 这...

gbin1
2011/11/10
80
0
JavaScript有用的代码片段和trick

本文内容来自知乎《有哪些短小却令人惊叹的 JavaScript 代码?》和文章《这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已》,同时也汇集了部分网上其它来源的内容。 浮点数取...

jenemy
09/29
0
0
6个强大的JavaScript日期操作插件

我们必须承认,JavaScript内建的Date方法实在是太基础了,远不够我们来处理日期。总有人会开发自己的JavaScript日期操作库,为何在能够使用已经开发并测试好的日期插件时还要再自己造个轮子呢...

彭博
2012/11/27
1K
0
6个强大的JavaScript日期操作插件(翻译)

我们必须承认,JavaScript内建的Date方法实在是太基础了,远不够我们来处理日期。总有人会开发自己的JavaScript日期操作库,为何在能够使用已经开发并测试好的日期插件时还要再自己造个轮子呢...

彭博
2012/03/13
6K
8

没有更多内容

加载失败,请刷新页面

加载更多

前端面试题汇总

一. HTML常见的兼容性 1.HTML5 标签在低版本浏览器不兼容 解决办法:使用html5shiv库,引入下列语句 <!--[if lte IE 8]> <script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></sc......

蓝小驴
16分钟前
3
0
OSChina 周四乱弹 —— 我气的脸都黑了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐《Red Battle》- 高橋李依 / 豊崎愛生 《Red Battle》- 高橋李依 / 豊崎愛生 手机党少年们想听歌,请使劲儿戳(这里) @丶Lion ...

小小编辑
29分钟前
367
18
找OSG教程, B站就有

https://www.bilibili.com/video/av64849038?from=search&seid=11632913960900279653

洛克人杰洛
50分钟前
4
0
学习记录(day07-Vue组件、自定义属性、自定义事件)

[TOC] 1.1.1什么是组件 一个vue文件就是一个组件 组件将html标签/css样式/对应JS打包成一个整体,也可以理解钻进一个具有样式和特效的自定义标签。 一、编写组件(提供方)<template> <di...

庭前云落
55分钟前
4
0
使用Prometheus监控SpringBoot应用

通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用。(本文以SpringBoot 2.1.9.RELEASE 作为监控目标) 编码 添加依赖 使...

JAVA日知录
57分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部