`
pcajax
  • 浏览: 2103677 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

js 数字,金额 用逗号 隔开。数字格式化

阅读更多
例如:
12345格式化为12,345.00
12345.6格式化为12,345.60
12345.67格式化为 12,345.67
只留两位小数。

回来后写了个格式化函数。可以控制小数位数,自动四舍五入。

代码如下:
引用

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];  
   t = "";  
   for(i = 0; i < l.length; i ++ )  
   {  
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
   }  
   return t.split("").reverse().join("") + "." + r;  
}


调用:fmoney("12345.675910", 3),返回12,345.676

还原函数:
引用

function rmoney(s)  
{  
   return parseFloat(s.replace(/[^\d\.-]/g, ""));  
}


示例(可保存一下代码为html文件,运行查看效果):
引用

<SCRIPT>  
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];  
   t = "";  
   for(i = 0; i < l.length; i ++ )  
   {  
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
   }  
   return t.split("").reverse().join("") + "." + r;  
}  
function rmoney(s)  
{  
   return parseFloat(s.replace(/[^\d\.-]/g, ""));  
}  
function g(id)  
{  
   return document.getElementById(id);  
}  
window.onload = function()  
{  
   var num,  
   txt = g("txt"),  
   txt2 = g("txt2"),  
   btn = g("btn"),  
   btn2 = g("btn2"),  
   span = g("span");  
   btn.onclick = function()  
   {  
      num = parseInt(g("num").value);  
      txt.value = fmoney(txt.value, num);  
      txt2.value = fmoney(txt2.value, num);  
   }  
   ;  
   btn2.onclick = function()  
   {  
      num = parseInt(g("num").value);  
      span.innerHTML = "=" + fmoney(rmoney(txt.value) + rmoney(txt2.value), num);  
   }  
   ;  
}  
;  
</SCRIPT>  
小数点位数:  
<select id="num">  
<option value="2">2</option>  
<option value="3">3</option>  
<option value="4">4</option>  
<option value="5">5</option>  
</select>  
<input type="text" id="txt" value="12345.675910"> +  
<input type="text" id="txt2" value="1223"> <span id="span"></span>  
<br>  
<input type="button" id="btn" value="格式化">  
<input type="button" id="btn2" value="相加">
分享到:
评论

相关推荐

    JS格式化数字金额用逗号隔开保留两位小数

    JS格式化数字金额只留两位小数。写了个格式化函数。可以控制小数位数,自动四舍五入,感兴趣的朋友可以了解下

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

    最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改 之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持用逗号隔开 ...

    swf图形报表,有中文参数说明

    formatNumberScale 是否格式化数字,默认为1(True),自动的给你的数字加上K(千)或M(百万);若取0,则不加K或M decimalPrecision 指定小数位的位数,[0-10] 例如:='0' 取整 divLineDecimalPrecision 指定水平分区线...

    FusionCharts-v3.1-crack

    formatNumberScale是否格式化数字,默认为1(True),自动的给你的数字加上K(千)或M(百万);若取0,则不加K或M decimalPrecision指定小数位的位数,[0-10]例如:='0' 取整 divLineDecimalPrecision指定水平分区线的值...

    js/jquery解析json和数组格式的方法详解

    可以把—个用逗号分隔的表达式列表放在方括号中,创建并初始化—个数组。这些表达式的值将成为数组元素。例如: var a = [1, true, ‘abc’]; 具体操作查看API. ps:必须方括号隔开。 2.关联数组 1.语法:var myhash=...

    JavaScript笔记

    如果省略该参数,则使用逗号作为分隔符 |--2.toString()方法--可把数组转换为字符串,并返回结果 |--3.concat()方法--用于连接两个或多个数组,该方法不会改变现有的数组 |--4.slice()方法--截取元素。根据给定的...

    coordinateCleaner:一个 Dojo 模块,用于解析单字符串纬度和经度条目,清理和格式化坐标,并以十进制度数格式返回包含纬度和经度的数组

    度、分和秒应该用空格隔开。 目前该模块仅适用于西北半球,但将在未来版本中更改。 模块将删除所有符号和字母。 #Examples输入“ 39°,-108°”将输出[39,-108] 输入“39度,108度24分钟”会输出[39,-108.4] ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    单独用XMl不能显示页面,我们使用格式化技术,比如CSS或者XSL,才能显示XML标记创建的文档。 我们在前面第一章讲到XML是将数据和格式分离的。XML文档本身不知道如何来显示,必须有辅助文件来帮助实现。(XML取消了...

    Java-PHP-C#

    简单化一点, 我们可以用 eregi()取代 ereg().eregi()对大小写不敏感, 我们就不需要指定两个范围 "a-z" 和 "A-Z" – 只需要指定一个就可以了: ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ 后面的服务器名字也是一样,但要去掉...

    gioconte.github.io:连接体

    所有需要的文件都是“.csv”格式,具体结构如下: -locations files (4):每个文件包含不同的文件位置。 文件的每一行都包含表示 x、y、z 坐标的三个值。 每个值由一个逗号分隔。 -network 文件:该文件

    玩转模板--自动代码生成工程

    可以自由用户自定义工具,丰富模板参数的处理,如在日期输出时对其进行格式化输出 例如: VelocityContext context = new VelocityContext(map); context.put("dateTool", new DateTool()); //添加日期工具类 模板...

    asp.net面试题

    请用逗号按顺序分隔开 三、C#中为了防止非本程序集的代码访问,可以用什么关键字修饰类或者类成员? 四、为了将table表内bb(datetime类型)字段的数据按年月降序输出,对应的SQL语句为 选择题答案: 1.B,2.D,3....

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -Window...

    苹果8XPC和手机二合一完整版

    延迟加载图片: img元素不要使用src调用图片地址,而是用data-original。 [vod:pic]" src="{maccms:path}images/blank.png" alt="[vod:name]" /&gt; ****************************系统内置JS、CSS函数库说明 结束****...

    ExtAspNet_v2.3.2_dll

    -修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -Window...

Global site tag (gtag.js) - Google Analytics