JavaScript 中 toFixed() 的舍入规则
2022-11-16 17:30:30
toFixed的舍入规则并不是“四舍五入”,而是“四舍六入五成双”,也即“4舍6入5凑偶”。
* “四”是指 `≤4` 时舍去
* "六" 是指 `≥6` 时进上
* "五" 指的是根据 5 `后面`的数字来定
当5后有有效数字(不为0)时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。(0是偶数)
下面看一些例子:
```
const a1 = 0.046; // 第3位小数为6
const a2 = 0.044; // 第3位小数为4
const a3 = 0.0451 // 第3位小数为5, 5后为 1-有效数字
const a4 = 0.0450; // 第3位小数为5, 5后为 0-无效数字,5前为偶数
const a5 = 0.04503; //第3位小数为5, 5后为 03-有效数字
const a6 = 0.045; // 第3位小数为5, 5后无有效数字,5前为偶数
const a7 = 0.035; // 第3位小数为5, 5后无有效数字,5前为奇数
console.log(a1.toFixed(2)); // 0.05
console.log(a2.toFixed(2)); // 0.04
console.log(a3.toFixed(2)); // 0.05
console.log(a4.toFixed(2)); // 0.04
console.log(a5.toFixed(2)); // 0.05
console.log(a6.toFixed(2)); // 0.04
console.log(a7.toFixed(2)); // 0.04
```