JavaScript 中保留两位小数的正确方法
大家好!我遇到了一个看似简单的问题:需要将数字四舍五入到两位小数,但仅在必要时进行。也就是说,如果数字是 10.5,则保持原样;如果是 10.456,则四舍五入到 10.46。
问题是,JavaScript 的标准方法表现奇怪。例如,`toFixed(2)` 返回字符串而不是数字,并且由于浮点数精度问题,可能会给出意外结果。
```javascript
// toFixed 的问题
console.log(1.005.toFixed(2)); // 输出 "1.00" 而不是预期的 "1.01"
console.log(0.1 + 0.2); // 0.30000000000000004
```
我尝试使用 `Math.round(num * 100) / 100`,但这也存在问题:
```javascript
// Math.round 的问题
console.log(Math.round(1.005 * 100) / 100); // 1 而不是 1.01
console.log(Math.round(1.255 * 100) / 100); // 1.25 而不是 1.26
```
请告诉我,考虑到 JavaScript 的所有特性,如何正确且可靠地将数字四舍五入到两位小数?结果需要是