JS整数数值调用toString(),toFixed()报错

今天对数值进行小数处理的时候发现一个小问题

当时使用了整数 就会报错
– 无效或意外的标记 – 数据格式错误

console.log(10.toString());//错
console.log(10.toFixed(2));//错

在这里插入图片描述
解决方案
一、使用小数数调用函数 **toString()| toFixed() ** 可行

console.log(10.toString());//10
console.log(10.toFixed(2));//10.00

二、定义变量 整数数值赋给变量 然后通过变量调用函数

var num = 10;
console.log(num.toString());//10
console.log(num.toFixed(2));//10.00

三、Number()先转化

console.log(Number(10).toString());//10
console.log(Number(10).toFixed(2));//10.00

扩展
toFixed() 在Chrome 有小细节问题

var a = 1.335;
console.log(a.toFixed(2))
// IE      1.34
//chorme   1.33

所以tofixed这个方法在涉及到金钱计算的业务中就必须优化使用

银行家舍入:
所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。
四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。

参考网址 https://www.cnblogs.com/zazahao/p/10705411.html

保留小数问题

//网友的的解决方法numFormat 为千分位方法

numFormat(Math.round(money*100/100).toFixed(2))

//千分位 保留两位小数方法
format(num) {
      let str = ""; //字符串累加
      str = (Math.round(num * 100) / 100)
        .toFixed(2)
        .toString()
        .replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) {
          return $1 + ",";
        });
      return str; //字符串=>数组=>反转=>字符串
    }

你可能感兴趣的:(JS)