js 保留小数点后两位不四舍五入
在日常的编程中,我们经常会遇到需要保留小数点后两位但不进行四舍五入的情况,特别是在金融领域或者涉及金额计算的场景中。在JavaScript中,我们可以通过一些方法来实现这个功能,本文将详细讨论如何在JavaScript中保留小数点后两位不进行四舍五入的方法。
方法一:toFixed()
toFixed()
方法是 JavaScript 的原生方法,用来将数字格式化为指定小数位的字符串。它的用法如下:
let num = 12.3456;
let fixedNum = num.toFixed(2);
console.log(fixedNum); // 输出 "12.35"
可以看到,toFixed()
方法将数值四舍五入到指定的小数位数后返回一个字符串,但这并不是我们想要的结果。因为它会进行四舍五入,不符合我们的需求。
方法二:手动处理
为了实现保留小数点后两位但不进行四舍五入的功能,我们可以手动处理数字。我们可以先将数字转换为字符串,然后找到小数点的位置,手动截取保留两位小数后的字符串。
function formatNumber(num) {
let strNum = String(num);
let decimalIndex = strNum.indexOf('.');
if (decimalIndex !== -1) {
let decimalPart = strNum.slice(decimalIndex + 1, decimalIndex + 3);
return strNum.slice(0, decimalIndex + 1) + decimalPart;
} else {
return strNum;
}
}
let num = 12.3456;
let formattedNum = formatNumber(num);
console.log(formattedNum); // 输出 "12.34"
通过上面的代码,我们定义了一个 formatNumber
函数,这个函数会将一个数字格式化为保留两位小数但不进行四舍五入的字符串。我们先将数字转换为字符串,然后找到小数点的位置,手动截取保留两位小数后的字符串返回。
方法三:乘法和除法
另外一种方法是通过乘法和除法的方式来实现保留小数点后两位但不进行四舍五入。我们先将数字乘以 100,然后取整数部分,再除以 100 得到截取后的小数部分。
function formatNumber(num) {
let integerPart = Math.floor(num);
let decimalPart = num * 100 - integerPart * 100;
return integerPart + decimalPart / 100;
}
let num = 12.3456;
let formattedNum = formatNumber(num);
console.log(formattedNum); // 输出 "12.34"
通过上面的代码,我们定义了一个 formatNumber
函数,这个函数会将一个数字格式化为保留两位小数但不进行四舍五入的数值。我们先将数字乘以 100,然后取整数部分得到整数部分,再将数字乘以 100 后减去整数部分乘以 100 得到小数部分,最后返回整数部分和小数部分相加的结果。
总结
在JavaScript中保留小数点后两位但不进行四舍五入的方法有很多种实现方式,上面介绍了三种常见的方法。根据实际使用场景,选择合适的方法来实现保留小数点后两位不四舍五入的需求。