偶然之间用到这两个方法
然后在数字转换成字符串的时候,并没有感觉这两个方法有什么区别,如下:
1
2
3
4
5
6
7
8
|
var e=123 e.toString() "123" e.toLocaleString() "123" |
是吧,并没有什么区别,上面的e是一个三位数的数字,那么要是四位数以上呢
var a=1234 a.toString() "1234" a.toLocaleString() "1,234"
当数字是四位及以上时,toLocaleString()会让数字三位三位一分隔,像我们有时候数字也会三位一个分号
再继续看数组转成字符串分别用这两个方法有什么区别呢,看看,代码如下
1
2
3
4
5
6
7
8
9
|
var aa=[1,2,3] aa.toLocaleString() "1,2,3" aa.toString() "1,2,3" |
也并没有区别哦
然后再上网看看发现好像在转换时间格式上有区别,那么看看吧,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var sd= new Date() sd Wed Feb 15 2017 11:21:31 GMT+0800 (CST) sd.toLocaleString() "2017/2/15 上午11:21:31" sd.toString() "Wed Feb 15 2017 11:21:31 GMT+0800 (CST)" |
恩 这样一目了然看到了差别
这样总结以上就是toString()和toLocaleString()两点区别:
1.当数字是四位数及以上时,有区别,区别看以上代码
2.当目标是标准时间格式时,用以上两种方法是有区别的,区别看以上
--------------------
1.方法展示
1
2
3
4
5
6
7
|
//将数字转换成金额显示 function toMoney(num){ num = num.toFixed(2); num = parseFloat(num) num = num.toLocaleString(); return num; //返回的是字符串23,245.12保留2位小数 } |
2.方法说明
num = num.toFixed(2);将数字转成带有2位小数的字符串 num = parseFloat(num)将带有2位小数的字符串转成带有小数的数字 num = num.toLocaleString();将带有2位小数的数字转成金额格式
3.方法实例
let num = 5262456.2158; num = toMoney(num); console.log(num);//打印结果 5,262,456.22 //将数字转换成金额显示 function toMoney(num){ num = num.toFixed(2); num = parseFloat(num) num = num.toLocaleString(); return num;//返回的是字符串23,245.12保留2位小数 }