jQuery将小数点四舍五入到.49或.99
我在想如何把小数点四舍五入到.49或.99 我找到了jQuery将小数点四舍五入到.49或.99,jquery,math,floating-point,rounding,decimal,Jquery,Math,Floating Point,Rounding,Decimal,我在想如何把小数点四舍五入到.49或.99 我找到了toFixed(2)函数,但不确定如何向上或向下取整 基本上需要达到最接近的价格点,因此,例如X.55将下降到X.49,X.84将上升到X.99。这不需要jQuery,但可以使用纯JavaScript完成: Math.round(price*2)/2 - 0.01 注意也要考虑数字的数量将被舍入到0的情况(价格>代码> 0.25),因为在这种情况下,它会产生-0.01。 < P>我不能把一个特定的数循环/固定,你需要检查/计算这个值,这可能意
toFixed(2)
函数,但不确定如何向上或向下取整
基本上需要达到最接近的价格点,因此,例如X.55将下降到X.49,X.84将上升到X.99。这不需要jQuery,但可以使用纯JavaScript完成:
Math.round(price*2)/2 - 0.01
注意也要考虑数字的数量将被舍入到0的情况(<代码>价格>代码> 0.25),因为在这种情况下,它会产生-0.01。
< P>我不能把一个特定的数循环/固定,你需要检查/计算这个值,这可能意味着:四舍五入然后减去1或四舍五入然后减去51。这不需要jQuery。你只需要上javascript的数学课,取整也需要一些额外的减法,因为如果每次jQuery让事情变得比需要的更迟钝,取整将得到最接近的小数点window.round = function(num) {
cents = (num * 100) % 100;
if (cents >= 25 && cents < 75) {
//round x.25 to x.74 -> x.49
return Math.floor(num) + 0.49;
}
if (cents < 25) {
//round x.00 to x.24 -> [x - 1].99
return Math.floor(num) - 0.01;
}
//round x.75 to x.99 -> x.99
return Math.floor(num) + 0.99;
};
window.round=函数(num){
分=(数值*100)%100;
如果(美分>=25&&美分<75){
//第x.25轮至第x.74轮->第x.49轮
返回数学地板(num)+0.49;
}
如果(美分<25){
//第x.00轮至第x.24轮->[x-1].99
返回数学地板(num)-0.01;
}
//第x.75轮至第x.99轮->第x.99轮
返回数学地板(num)+0.99;
};
稍微编辑aroth的答案,假设我们还需要四舍五入到最接近的5倍值
window.round = function(num) {
cents = (num * 100) % 100;
if (cents >= 25 && cents < 75) {
//round x.25 to x.74 -> x.49
return Math.ceil(num/5)*5 + 0.49;
}
if (cents < 25) {
//round x.00 to x.24 -> [x - 1].99
return Math.ceil(num/5)*5 - 0.01;
}
//round x.75 to x.99 -> x.99
return Math.ceil(num/5)*5 + 0.99;
};
window.round=函数(num){
分=(数值*100)%100;
如果(美分>=25&&美分<75){
//第x.25轮至第x.74轮->第x.49轮
返回数学单元(num/5)*5+0.49;
}
如果(美分<25){
//第x.00轮至第x.24轮->[x-1].99
返回Math.ceil(num/5)*5-0.01;
}
//第x.75轮至第x.99轮->第x.99轮
返回Math.ceil(num/5)*5+0.99;
};
阅读那些有用的东西。不错!我会确保考虑到-0.01可能性,正如你指出的那样。