Java Math.round(),Math.ceil(),Math.floor()的区别详解
Math.round()“四舍五入”,
小数点后第一位<5
- 正数:Math.round(11.46)=11
- 负数:Math.round(-11.46)=-11
小数点后第一位>5
- 正数:Math.round(11.68)=12
- 负数:Math.round(-11.68)=-12
小数点后第一位=5
- 正数:Math.round(11.5)=12
- 负数:Math.round(-11.5)=-11
doubled=3.1415926; doubled2=18.58; doubled3=-15.23; doubled4=-16.85; longround1=Math.round(d);//结果3 longround2=Math.round(d2);//结果19 longround3=Math.round(d3);//结果-15 longround4=Math.round(d4);//结果-17
Math.ceil()“向上取整”,即小数部分直接舍去,并向正数部分进1
doubled=3.1415926; doubled2=18.58; doubled3=-15.23; doubled4=-16.85; doubled5=-16.5; doubled6=16.5; doubleceil1=Math.ceil(d);//结果4.0 doubleceil2=Math.ceil(d2);//结果19.0 doubleceil3=Math.ceil(d3);//结果-15.0 doubleceil4=Math.ceil(d4);//结果-16.0 doubleceil5=Math.ceil(d5);//结果-16.0 doubleceil6=Math.ceil(d6);//结果17.0
【注】该数为小数时,小数部分直接舍去
Math.floor()“向下取整”,即小数部分直接舍去
doubled=3.1415926; doubled2=18.58; doubled3=-15.23; doubled4=-16.85; doubled5=-16.5; doubled6=16.5; doublefloor1=Math.floor(d);//结果3.0 doublefloor2=Math.floor(d2);//结果18.0 doublefloor3=Math.floor(d3);//结果-16.0 doublefloor4=Math.floor(d4);//结果-17.0 doublefloor5=Math.floor(d5);//结果-17.0 doublefloor6=Math.floor(d6);//结果16.0
【注】Math.floor()容易出现精度问题,举个最简单例子:
对小数8.54保留两位小数(虽然它已经保留了2位小数):
Math.floor(8.54*100)/100//输出结果为8.53,注意是8.53而不是8.54。
所以这种函数慎用。
到此这篇关于JavaMath.round(),Math.ceil(),Math.floor()的区别详解的文章就介绍到这了,更多相关Math.round(),Math.ceil(),Math.floor()内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。