Javascript四舍五入到最接近的小数点后2位(但向下五舍五入)
Javascript Rounding to the nearest 2 decimal (however 5 rounds down)
所有我的值都以小数点后3位的形式从服务器返回。我需要四舍五入到最接近的10,2位小数,例如十进制(18,3)中的十进制(18,2)。问题是,当它是5时,它需要四舍五入。
我需要在JavaScript:D中这样做
我不能保证会返回小数点后3位,这是最大值。
ex. 4.494 -> 4.49
**ex. 4.495 -> 4.49**
ex. 4.496 -> 4.50
似乎你只想在最后一个数字是5的地方进行特殊舍入,所以测试一下,并对这些情况进行不同的舍入:
function myRound(n) {
// If ends in .nn5, round down
if (/'.'d'd5$/.test(''+n)) {
n = Math.floor(n*100)/100;
}
// Apply normal rounding
return n.toFixed(2);
}
console.log(myRound(4.494)); // 4.49
console.log(myRound(4.495)); // 4.49
console.log(myRound(4.496)); // 4.50
也许可以创建自己的自定义圆形函数?检查是否可以覆盖默认的Math.round javascript功能?
考虑到上面文章中的解决方案,您可能会稍微修改如下:
Number.prototype.round = function(precision) {
var numPrecision = (!precision) ? 0 : parseInt(precision, 10);
var numBig = this * Math.pow(10, numPrecision);
var roundedNum;
if (numBig - Math.floor(numBig) == 0.5)
roundedNum = (Math.round(numBig) + 1) / Math.pow(10, numPrecision);
else
roundedNum = Math.round(numBig) / Math.pow(10, numPrecision);
return roundedNum;
};
var n = 2.344;
var x = n.round(2);
alert(x);
相关文章:
- 将数字四舍五入到小数点后两位
- 将数字四舍五入到小数点后两位,以设置货币格式
- 将数字四舍五入到两位小数
- AngularJS {{ val | number:1 }} 不四舍五入到小数点后 1 位
- 小数点后两位四舍五入-找不到正确的公式
- 在 Javascript 中难以将 json 对象值四舍五入到小数点后两位
- 有没有一种方法可以在模板字符串中四舍五入到2位小数
- 在Javascript中,如果数字超过8位,如何将其四舍五入到8位
- 如何将数组中的所有值四舍五入到小数点后2位
- 如何将减去的值四舍五入到小数点后两位
- Javascript四舍五入到最接近的小数点后2位(但向下五舍五入)
- JavaScript在内联样式属性上四舍五入到小数点后1位
- 将数字四舍五入到小数点后2位
- 将小数点后第三位四舍五入到最接近的5位
- javascript从小数点后第三位四舍五入
- 在javascript/jquery中四舍五入到小数点后3位
- 将每个文本框四舍五入到小数点后2位
- Javascript:四舍五入到下一个十位
- 怎么四舍五入到小数点后2位
- Javascript:将边界0.5的小数点后2位四舍五入