今天同事在做一个功能的时候需要使用js来实现类似php函数number_format的功能,最后就有了下面的方法,可以实现了:

  /**
* number_format
* @param number 传进来的数,
* @param bit 保留的小数位,默认保留两位小数,
* @param sign 为整数位间隔符号,默认为空格
* @param gapnum 为整数位每几位间隔,默认为3位一隔
* @type arguments的作用:arguments[0] == number(之一)
*/
function number_format(number,bit,sign,gapnum){
//设置接收参数的默认值
var bit = arguments[1] ? arguments[1] : 2 ;
var sign = arguments[2] ? arguments[2] : ' ' ;
var gapnum = arguments[3] ? arguments[3] : 3 ;
var str = '' ; number = number.toFixed(bit);//格式化
realnum = number.split('.')[0];//整数位(使用小数点分割整数和小数部分)
decimal = number.split('.')[1];//小数位
realnumarr = realnum.split('');//将整数位逐位放进数组 ["1", "2", "3", "4", "5", "6"] //把整数部分从右往左拼接,每bit位添加一个sign符号
for(var i=1;i<=realnumarr.length;i++){
str = realnumarr[realnumarr.length-i] + str ;
if(i%gapnum == 0){
str = sign+str;//每隔gapnum位前面加指定符号
}
} //当遇到 gapnum 的倍数的时候,会出现比如 ",123",这种情况,所以要去掉最前面的 sign
str = (realnum.length%gapnum==0) ? str.substr(1) : str;
//重新拼接实数部分和小数位
realnum = str+'.'+decimal;
return realnum;
}

测试了一下:

  $("#caonidaye").click(function(){
    console.log(number_format(1234561.78,2,','));
  })

结果:

  

js 实现类似php函数number_format的功能的更多相关文章

  1. 利用原生JS实现类似浏览器查找高亮功能(转载)

    利用原生JS实现类似浏览器查找高亮功能 在完成 Navify 时,增加一个类似浏览器ctrl+f查找并该高亮的功能,在此进行一点总结: 需求 在.content中有许多.box,需要在.box中找出搜 ...

  2. js实现类似页面广告一段时间自动打开一段时间自动关闭的功能

    js实现类似页面广告一段时间自动打开一段时间自动关闭的功能 一.总结 Window 对象的 open()方法:window.open('测试页面.html','news','height=300,wi ...

  3. Java实现类似eval()函数或exec()函数的功能

    一篇参考博客:http://www.cnblogs.com/fangwenyu/archive/2011/10/12/2209051.html 在Python中有一个exec()函数,同样在JavaS ...

  4. js有关数组的函数

    map()和filter()函数 js的数组迭代器函数map和filter,可以遍历数组时产生新的数组,和python的map函数很类似1)filter是满足条件的留下,是对原数组的过滤(筛选):2) ...

  5. JS中的eval函数

           最近开始慢慢学习前端的脚本了,上次碰到了一个问题,需要通过一个对象的属性名称来获得这个对象这个属性的值.如果在C#中,那么直接通过反射就可以了.而在js中,也有类似的函数,那就是eval ...

  6. 【Mocha.js 101】钩子函数

    前情提要 在上一篇文章<[Mocha.js 101]同步.异步与 Promise>中,我们学会了如何对同步方法.异步回调方法以及 Promise 进行测试. 在本篇文章中,我们将了解到 M ...

  7. js两种定义函数、继承方式及区别

    一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function ...

  8. SharePoint 2010 类似人人网站内信功能实施

    简介:用SharePoint代码加实施的方式,完成类似人人网站内信功能,当然,实现的比较简单,样式也比较难看,只为给大家一个实施的简单思路,如有谬误,还请见谅.当然,还有就是截图比较长,当然为了让大家 ...

  9. MVC实现类似QQ的网页聊天功能-ajax(下)

    此篇文章主要是对MVC实现类似QQ的网页聊天功能(上)的部分代码的解释. 首先说一下显示框的滚动条置底的问题: 结构很简单一个大的div(高度一定.overflow:auto)包含着两个小的div第一 ...

随机推荐

  1. 【转】c# Image获得图片路径的三种方法 winform

    代码如下:c# pictureBox1.Image的获得图片路径的三种方法 winform 1.绝对路径:this.pictureBox2.Image=Image.FromFile("D:\ ...

  2. 配置Tomcat使用https协议

    一.  创建tomcat证书 这里使用JDK自带的keytool工具来生成证书: 1. 在jdk的安装目录\bin\keytool.exe下打开keytool.exe 2. 在命令行中输入以下命令: ...

  3. 同一台机子上用多个git 账号

    Step 1 - Create a New SSH Key We need to generate a unique SSH key for our second GitHub account. 1 ...

  4. Pig语言基础-【持续更新中】

      ***本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.***   Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的, ...

  5. Bulk_Collect_Performance 比较

    上一篇讲到了调用集锦,这篇关注一下性能问题吧. DECLARE CURSOR c_tool_list IS SELECT descr d1 FROM hardware; l_descr hardwar ...

  6. 创建DOTA2本地数据库(一)

    在APP中,用本地数据库好于频繁的联网去获取相关数据.我使用SQLite作为本地的数据库,比较轻巧. 英雄 首先先建立英雄的数据库,暂时我先只设置ID,name,loaclized_name这三种,我 ...

  7. How To Handle a Loss of Confidence in Yourself

    Do you feel like you've lost confidence in yourself? Have you had strong self doubts? Perhaps you we ...

  8. PHP与apache环境配置

    最近想了解一些网页后台的东西,在看Luke Welling,laura Thomson的<php与mysql web开发>,书中环境配置的部分很庞杂,网上的各种教程也很乱,搞了一下午终于成 ...

  9. iOS 多任务

    本文转自猫神的博客:https://onevcat.com/2013/08/ios7-background-multitask/ 写的没的说,分享给大家,一起学习! iOS7以前的Multitaski ...

  10. linux常用命令(三)

    文件搜索命令 which 命令;可以用于查询某个命令所存在的路径,由此可知道谁可以使用它.附加可以看到命令的别名记录,就是在ls的时候会自动对文件夹上色.前面章节讲过. whereis 命令;可以找到 ...