现在的位置: 首页 > web前端 > 正文

JavaScript Math对象中Math round()四舍五入

2020年07月08日 web前端 ⁄ 共 850字 ⁄ 字号 评论关闭

  js中Math.round()是一个数值实现“四舍五入”的方法,在msdn和w3school文档中是理解为:把一个数字舍入为最接近的整数。在我们实际应用中:math.round(-11.6)的结果为-12这个好理解,但是math.round(-11.5)返回值为什么是-11而不是-12呢?


  Math.round()如何理解


  我们可以这样理解Math.floor(x+0.5),即将原来的数字加上0.5后,根据x为负数向上取整,x为整向上取整。所以:


  Math.round(-11.5);//理解为-11.5+0.5=-11,向上取整结果输出为-11


  Math.round(-11.6);//理解为-11.6+0.5=-11.1,向上取整结果输出为-12


  Math.round(11.5);//理解为11.5+0.5=12,向下取整结果输出为12


  Math.round(11.6);//理解为11.6+0.5=12.1,向下取整结果输出为12


  Math.round()操作输出


  case1:小数点后第一位=5


  //正数:


  Math.round(11.5);//输出12


  //负数:


  Math.round(-11.5);//输出-11


  Case2:小数点后第一位<5


  //正数:


  Math.round(11.49);//输出11


  //负数:


  Math.round(-11.49);//输出-11


  Case3:小数点后第一位>5


  //正数:


  Math.round(11.69);//输出12


  //负数:


  Math.round(-11.69);//输出-12


  Case4:小数点位数太多,会涉及精度问题,结果会不精准。


  Math.round(-10.500000000000001);//输出-11


  Math.round(-10.5000000000000001);//输出-10


  总之,Math.round()的问题给大家简单说了下,希望大家喜欢。

抱歉!评论已关闭.