锁定老帖子 主题:一道简单笔试题,你给力吗?
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-25
最后修改:2010-12-27
一道简单笔试题,你给力吗?
先申明:大虾们就别看了哈,你们懂的~
没看过的同学就当学习, 看过了的同学就当温习。
祝大家天天进步~
public class Problems { //判断是否为奇数,是就返回true public static boolean isOdd(int i){ return i % 2==1; } public static void main(String[] args){ for(int i=-2;i<=2;i++){ System.out.println(isOdd(i)); } System.out.println(2.00-1.10); } //请问,这段程序将会输出什么? //请解释并优化该代码 }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-12-25
我觉得是
false true false true false 0.9 |
|
返回顶楼 | |
发表时间:2010-12-26
嗯,答案就是 false false false true false 0.8999999999999999 分析下 负奇数 % 2 时,是等于-1的~ 所以,把isOdd改为 return i%2 !=0 ; 就好啦~~ 2.00-1.10那个。。 貌似是java对浮点数的表示的方面有问题。。 |
|
返回顶楼 | |
发表时间:2010-12-26
额...我做对了....
不过啊 你的注释是错的..有误导之嫌哦~~~~~~~ |
|
返回顶楼 | |
发表时间:2010-12-26
最后修改:2010-12-26
贫僧不吃肉 写道 2.00-1.10那个。。 貌似是java对浮点数的表示的方面有问题。。 经典的精度丢失问题.不只是Java的问题. 精确计算,要使用BigDecimal 精度丢失问题这里有详细论述 http://hxraid.iteye.com/blog/504293 |
|
返回顶楼 | |
发表时间:2010-12-26
ouchxp 写道 额...我做对了....
不过啊 你的注释是错的..有误导之嫌哦~~~~~~~ 呵呵,注释是说明这个函数原本希望实现的功能 |
|
返回顶楼 | |
发表时间:2010-12-26
ouchxp 写道 贫僧不吃肉 写道 2.00-1.10那个。。 貌似是java对浮点数的表示的方面有问题。。 经典的精度丢失问题.不只是Java的问题. 精确计算,要使用BigDecimal 精度丢失问题这里有详细论述 http://hxraid.iteye.com/blog/504293 嗯,不错,学习了~~ |
|
返回顶楼 | |
发表时间:2010-12-26
第一题貌似在java解惑里面看到过
|
|
返回顶楼 | |
发表时间:2010-12-26
public static boolean isOdd(int i){
return (i & 1) == 1; } |
|
返回顶楼 | |
发表时间:2010-12-26
自然数才有奇数与偶数的说法,而负数不是自然数。这个题目只能得出余数是0还是1,所以题目本身就有一点儿问题。
|
|
返回顶楼 | |