js小数点保留两位,不四舍五入
时间: 2025-05-23 17:09:31 浏览: 23
### JavaScript 保留小数点后两位且不进行四舍五入的方法
在 JavaScript 中,如果需要保留小数点后两位而不进行四舍五入,可以采用正则表达式或其他方式截取数值的小数部分。这种方法不会改变原始数值的大小,仅简单地截断多余的部分。
#### 使用正则表达式的方式
通过正则表达式匹配并提取所需的小数位数:
```javascript
function truncateToTwoDecimals(num) {
return String(num).replace(/^(-?\d*\.?\d{0,2})\d*$/, '$1');
}
console.log(truncateToTwoDecimals(3.14159)); // 输出 "3.14"
console.log(truncateToTwoDecimals(2.71828)); // 输出 "2.71"
console.log(truncateToTwoDecimals(5.99999)); // 输出 "5.99"
```
此方法利用 `String.prototype.replace` 和正则表达式来截取最多两位小数[^5]。
#### 手动计算的方式
另一种方法是手动将数值乘以 100 后取整再除回原比例:
```javascript
function truncateToTwoDecimals(num) {
return Math.trunc(num * 100) / 100;
}
console.log(truncateToTwoDecimals(3.14159)); // 输出 3.14
console.log(truncateToTwoDecimals(2.71828)); // 输出 2.71
console.log(truncateToTwoDecimals(5.99999)); // 输出 5.99
```
这里使用了 `Math.trunc()` 来移除小数部分,从而达到截断的效果[^1]。
#### 字符串切片法
还可以借助字符串操作函数完成同样的功能:
```javascript
function truncateToTwoDecimals(num) {
const parts = num.toString().split('.');
if (parts.length === 1 || !parts[1]) return num; // 整数情况直接返回
return parseFloat(parts[0] + '.' + parts[1].slice(0, 2));
}
console.log(truncateToTwoDecimals(3.14159)); // 输出 3.14
console.log(truncateToTwoDecimals(2.71828)); // 输出 2.71
console.log(truncateToTwoDecimals(5.99999)); // 输出 5.99
```
该方法先将数字转为字符串形式,随后分离其整数与小数部分,并只保留前两位小数[^5]。
---
### 总结
以上三种方法均可满足需求——即保留小数点后两位而无需考虑四舍五入逻辑。开发者可根据实际应用场景选择最合适的方案实施。
阅读全文
相关推荐
















