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

引子故事:

今天天气晴朗,天上下着冰雹,正是写代码的好时光。
公司领导对一群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


欢迎评论点赞!您的支持是我创作的动力!感谢支持!
欢迎关注公众号“程序员转管理”获取更多优质文章

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值