IE对toLocaleString小数位处理
2024-09-30 01:27:06
在js中对数值的格式化经常会用到四舍五入、保留小数位数、百分制格式化,分别会用到以下方法
<script type="text/javascript">
var n = 1234500.6789;
console.log(Math.round(n));//四舍五入
console.log(n.toFixed(2));//转成字符,并保留2位小数位数,同时对尾数四舍五入
console.log(n.toLocaleString());//转成字符,并根据本地规则格式化 //分别输出结果:
//1234501
//1234500.68
//1,234,500.679
</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
--希望大家提出不足之处,或有更好的方法。
最新文章
- Visual Studio Code + live-server编辑和浏览HTML网页
- Spring中配置文件中引用外部文件
- iOS开发 - AVPlayer实现流音频边播边存
- DTAP street
- spring boot1.3.0版本及以上版本profile指定参数无法被打入
- POJ 3468<;线段树,区间add>;
- md5sum校验文件完整性
- Socket协议
- asp.net -mvc框架复习(5)-ASP.NET MVC中的视图简单使用
- IDE-Android Studio -FAQ-使用习惯(不断更新 欢迎留言)
- Revisiting Network Support for RDMA
- Electron桌面应用打包流程
- 【转载】Impala和Hive的区别
- 基本数据结构:链表(list)
- node http模块搭建简单的服务和客户端
- 弄明白html、css3、js这个问题。。。
- jquery计算出left和top,让一个div水平垂直居中的简单实例
- 更有效率的使用Visual Studio
- 巨蟒python全栈开发flask2
- 第16篇 Shell脚本基础(一)