Float.MAX_VALUE = 3.4028235E38
Integer.MAX_VALUE = 2147483647请问:  int和float的存储位数都是32位, 为什么最大值相差很多?
他们的存储方式有什么区别啊?谢谢各位了...

解决方案 »

  1.   

    科学计算法呀!
    这个有什么奇怪呢?
    有得必有失呀,float虽然表示范围大,但是不精确呀
    而int是精确表示呀.
      

  2.   

    to treeroot:
    Float.MAX_VALUE比Integer.MAX_VALUE大呢。
    没看出来吗/
      

  3.   

    对阿,浮点数是不精确的,虽然在0附近相邻两个二进制的数相差小于1,但是在MAX_VALUE附近,相邻两个float差别是巨大的。而int无论多大,它和邻居之间差别都只是1(不考虑“越界”)http://community.csdn.net/Expert/topic/4349/4349418.xml?temp=.9098322Float.MAX_VALUE和它邻居之间的差距就可以把整个int值域放进去无数遍float存储标准是由IEEE制定的:http://www.math.byu.edu/~schow/work/IEEEFloatingPoint.htm
      

  4.   

    to: shine333(enihs)
    谢谢你的解释, 其他的好像没有看懂我的问题, 呵呵~~
    其实是float的存储方式的问题, 他是用的IEEE754的标准.不过还是得谢谢各位了:)