A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵侃 黑马帝   /  2011-8-9 02:48  /  2437 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[code=java]public class Test04 {
    public static void main(String[] args) {
        int num = Integer.MIN_VALUE;
        if (num < 0 && num == Math.abs(num)) {
            System.out.println("Hello World!");
        }
    }
}[/code]
Hello World!是可以打印出来的,说明Math.abs(Integer.MIN_VALUE)结果还是 Integer.MIN_VALUE,abs()方法的帮助文档里就有这句:
注意,如果参数等于 Integer.MIN_VALUE 的值(即能够表示的最小负 int 值),则结果与该值相同且为负。
可这是为什么呢,求高人解答

1 个回复

正序浏览
黑马网友  发表于 2011-8-10 06:07:52
沙发
这个就麻烦了,涉及到浮点数在计算机的存储方式。类似讲解的文章我看过不下五篇,最后结论是,你不用它,这头懂了,那头又忘了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马