黑马程序员技术交流社区

标题: 怎样实现小数的四舍五入?给个思路! [打印本页]

作者: hongiqnglik    时间: 2013-8-10 21:37
标题: 怎样实现小数的四舍五入?给个思路!
怎样实现小数的四舍五入?给个思路!
作者: §風過無痕§    时间: 2013-8-10 22:04
  1. Math.round(number);
复制代码
number 参数是必需的,表示要舍入为最接近的整数的值。



作者: 黑骏马    时间: 2013-8-11 09:37
本帖最后由 黑骏马 于 2013-8-11 09:50 编辑

小数的四舍五入可以使用Math.round()方法,它有8个重载,可以对double和decimel类型进行4种方式的舍入:一个参数:Math.round(number) 将小数值舍入到最接近的整数值。
  1. <span style="font-size: 14px; line-height: 1.5;">Math.Round(8.3);  //Returns  8</span>
  2. Math.Round(8.5);  //Returns  8
  3. Math.Round(8.6);  //Returns  9
  4. Math.Round(-8.3); //Returns  -8
  5. Math.Round(-8.6); //Returns  -9
复制代码
两个参数:Math.round(number,保留小数位数) 将小数值按指定的小数位数舍入。
  1. Math.Round(3.44444 , 1); //Returns 3.4
  2. Math.Round(3.44444 . 3); //Returns 3.444
复制代码
后两种是在前两种方法的基础上加一个参数,用于解决二进制浮点数算术运算精度损失的问题,
(前面8.5舍入后得到的不是9而是8,但有时又可能会得到9,为解决这类问题增加了一个参数)
  1. Math.Round(11.5 , MidpointRounding.ToEven);      //Returns 12
  2. Math.Round(11.5 , MidpointRounding.AwayFromZero);  //Returns  11
  3. Math.Round(3.4454 , 2 , MidpointRounding.ToEven);     //Returns  3.45
  4. Math.Round(3.4454 , 2 , MidpointRounding.AwayFromZero); //Returns  3.,44
复制代码









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2