Javascript-将1675舍入到1,67-默认情况下,它舍入到1,68
你知道如何将Javascript-将1675舍入到1,67-默认情况下,它舍入到1,68,javascript,jquery,rounding,Javascript,Jquery,Rounding,你知道如何将1.675四舍五入到1.67 默认情况下,它舍入到1.68: 数学四舍五入(1.675*100)/100;//1.68 顺便说一句,如果这个数字是1.676,它仍然应该像预期的那样,四舍五入到1.68。我们需要更深入地了解,它首先出现了 定义Math.round()如下: 返回最接近参数且等于数学整数的数值如果两个整数值与参数的距离相等,则结果是更接近参数的数值+∞.如果参数已经是整数,则结果就是参数本身 粗体部分很重要,因为您将获得以下结果: 数学四舍五入(1.674*100)/
1.675
四舍五入到1.67
默认情况下,它舍入到1.68
:
数学四舍五入(1.675*100)/100;//1.68
顺便说一句,如果这个数字是
1.676
,它仍然应该像预期的那样,四舍五入到1.68
。我们需要更深入地了解,它首先出现了
定义Math.round()
如下:
返回最接近参数且等于数学整数的数值如果两个整数值与参数的距离相等,则结果是更接近参数的数值+∞.如果参数已经是整数,则结果就是参数本身
粗体部分很重要,因为您将获得以下结果:
数学四舍五入(1.674*100)/100;//1.67
数学四舍五入(1.675*100)/100;//1.68(错误)
数学四舍五入(1.676*100)/100;//1.68
数学四舍五入(-1.674*100)/100;//-1.67
数学四舍五入(-1.675*100)/100;//-1.67
数学四舍五入(-1.676*100)/100;//-1.68
看看它是如何工作的,因为你期待的是负数
如果要反转1.675
舍入值,则不能使用Math.floor()
,因为这将更改所有其他结果:
数学楼层(1.674*100)/100;//1.67
数学地板(1.675*100)/100;//1.67
数学地板(1.676*100)/100;//1.67(错误)
数学地板(-1.674*100)/100;//-1.68(错误)
数学地板(-1.675*100)/100;//-1.68(错误)
数学地板(-1.676*100)/100;//-1.68
我的解决方案是使用这个Javascript特性,它搜索最接近的值+∞
1.675
1.675
(这是负数)-1.675
round()+∞ <代码>-1.67
1.67
function\u round(值、精度){
var移位=数学功率(10,精度);
var negateBack=数学abs(值)/-值;
返回数学取整(数学绝对值)*-1*移位)/移位*反回退;
}
_圆形(1.674,2);//1.67
_圆形(1.675,2);//1.67
_圆形(1.676,2);//1.68
_圆形(-1.674,2);//-1.67
_圆形(-1.675,2);//-1.67
_圆形(-1.676,2);//-1.68
Math.floor(1.675*100)/100谢谢@ASDFGerte,成功了。。你跑得真快!!这类信息是语言学习的一部分。我希望你不要每次懒洋洋地查看语言文档@ASDFGerte时都发问题,使用floor
会破坏1.676
@MisterJojo的结果检查我的答案,你会发现这并不是那么简单;)<代码>\u round(2.365,2)为我提供了2.37
。这是预期的结果吗?这不是预期的结果,但这让我感到沮丧:console.log(-2.365*100);//236.50000000000003