首页 > 代码库 > IE对toLocaleString小数位处理
IE对toLocaleString小数位处理
在js中对数值的格式化经常会用到四舍五入、保留小数位数、百分制格式化,分别会用到以下方法
<script type="text/javascript"> var n = 1234500.6789; console.log(Math.round(n));//四舍五入 console.log(n.toFixed(2));//转成字符,并保留2位小数位数,同时对尾数四舍五入 console.log(n.toLocaleString());//转成字符,并根据本地规则格式化
//分别输出结果:
</script>
但是在IE浏览器下toLocaleString()的结果与其它浏览器去不一样;
<script type="text/javascript"> var n = 123456789; document.write(n.toLocaleString()); // IE:123,456,789.00 //Chrome:123, 456, 789.00 </script>
在IE下,整数格式化出现了两小数,并不是我想要的结果。为了统一toLocaleString()方法,并增强其它,单独写了一个方法
<script type="text/javascript"> //n格式化的数字 //m保留的小数位数,可不传 function toLocaleString(n, m) { if (m == null || m == "") { m = 0; } var str = n.toLocaleString(); if (m > 0) { str = str.substring(0, str.lastIndexOf(".") + 1 + m); } else { str = str.substring(0, str.lastIndexOf(".") + m); } return str; } //测试 验证 var n = 1234567.366; document.write(toLocaleString(n));document.write("<br>"); document.write(toLocaleString(n, 0)); document.write("<br>"); document.write(toLocaleString(n, 1)); document.write("<br>"); document.write(toLocaleString(n, 2)); document.write("<br>");</script>
输出结果在IE和Chrome下都是:
1,234,567
1,234,567
1,234,567.3
1,234,567.37
--希望大家提出不足之处,或有更好的方法。
IE对toLocaleString小数位处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。