您当前的位置:首页 > 计算机 > 编程开发 > Java

惊!超过百分之九十九的人曾经写错了Java的取整方法!

时间:12-01来源:作者:点击数:

引子故事:

今天天气晴朗,天上下着冰雹,正是写代码的好时光。

公司领导对一群Java实习生组织了一个考核,题目如下:

设计一个程序输入任意一个数字,输出该数字的整数部分。
考核时间:下班前完成。

实习生们都觉得这很简单,马上开干,实习生四毛一个五分钟就完成了程序的编辑,而实习生九毛第二天中午十一点五十九 分就完成了,他们都根据考核要求在下班前完成了这次考核任务,把代码交给了领导查验。对于按时完成考核,他们应该得到奖励,奖励一朵小红花:

奖励你 一朵小红花

领导看了四毛的代码,感到非常生气!然后给九毛涨了一块钱工资。他们的成绩如下:

在这里插入图片描述

我们再来看看他们写的代码,先看看四毛的:

...公司要求保密省略一部分...
System.out.println("请输入一个任意数字:");
...公司要求保密省略一部分...
int i = (int)Double.parseDouble(scan.next());
System.out.println("您输入的数字的整数部分为:"+i);
...公司要求保密省略一部分...

输入-1.5,竟然输出的是-1!正确的值应该是-2。

再来看看九毛的代码:

...公司要求保密省略一部分...
System.out.println("请输入一个任意数字:");
...公司要求保密省略一部分...
int i = Math.floor(Double.parseDouble(scan.next()));
System.out.println("您输入的数字的整数部分为:"+i);
...公司要求保密省略一部分...

输入-1.5,输出的是-2,正确!

四毛自己去实现一个取整方法,这种方法估计不少人曾经用过来取整,中招的在评论区举个手吗?

java.lang.Math提供了很多数学相关方法,非常强大,建议还是不要造轮子,用经过大量测试成熟的方法去写代码降低BUG发生的几率。

最后我们再来看看Math里和这次考核相关的方法:

数学意义上的取整数部分:Math.floor(-1.5)=-2

四舍五入取整:Math.rint(-1.5)=-2

进位取整:Math.ceil(-1.1)=-1

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门