语法
numObj.toFixed(digits)
digits: 介于 0 到 20,超出或没有传入直接默认为 0, 位数不够的拿 0 凑
返回:指定小数位数的字符串
chrome下四舍五入不准,所以通常做法是转换为整数再处理避免浮点数精度的损失
1.35.toFixed(1) // 1.4 正确
1.335.toFixed(2) // 1.33 错误
(1.335*100).toFixed()/100 //正确 1.34
1.335.toFixed(3) // 1.333 错误
(1.3335*1000).toFixed()/1000 //正确 1.34
对数字的字面量直接调用会报错,
原因: .toFixed中的.
号被解释为小数点,
fix: 字面量后加个空格调用,或者使用两个点号调用该方法。
- 数字后边加空格
- 数字后边加两个点号
- 数字加()
756.toFixed() // 报错 SyntaxError: Unexpected token ILLEGAL
756..toFixed() // "756"
756 .toFixed() // "756"
(756)..toFixed() // "756"
3.14.toFixed() // "3"
3.14 .toFixed() // "3"
3.14..toFixed() // SyntaxError: Unexpected token .
操作符优先级,字面量负数直接调用方法不会返回字符串
-3.14.toFixed() // -3
Add @2017年03月31日10:08:26
Math.round(x)
相比于toFixed()差异
- 入参必须是数字,返回也是数字
- 对于 0.5,该方法将进行上舍入。
Math.round(3.5); // 4
Math.round(-3.5); // -3