论坛首页 Java企业应用论坛

int a=200*100000000;a =

浏览 12983 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-10-11  
hand515 写道
aa87963014 写道
骨之灵魂 写道
楼主, 1 - 0.9 等于多少?
那这句:
System.out.println(1-0.9);
是不是也该抛出异常??


数据类型转换 换不了就抛异常 有什么问题?

这不是数据类型转换的问题吧,分明就是和浮点数在内存中的表示有关系啊

唉 想起了那句话: 楼主用他丰富的经验打败了一整楼的人。
0 请登录后投票
   发表时间:2011-10-11  
kidneyball 写道
aa87963014 写道
我的马甲01 写道
aa87963014 写道
543089122 写道



计算机又不知道计算出的结果毫无意义,人家只知道除0它搞不定(抛异常),其他都能搞定



这个结果本身属于溢出。既然溢出本身就应该是错的。既然知道除0是错的(抛异常)
为何溢出又不是错的,不抛异常?


你傻啊,溢出 =!异常
溢出 谁跟你说错了?

而且编码和解码中经常会出现溢出后的值运算

我是傻,从没见过溢出后的值计算。

麻烦举个例子?


计算机的CPU是不会算减法的,那么减法是怎么做的? x - y = x + y的补数。
什么叫补数?反数加1。
什么叫反数?11111111减去y就是y的反数。 (在计算机内部可以直接按位取反,不用真的去算这个减法)
为什么x加上y的补数就是x-y?
因为 x + (11111111-y+1) = x + (11111111+1) - y = x + (100000000) - y = x + 0 - y = x - y
为什么100000000 = 0?因为溢出了。
如果溢出要报异常,所有减法都要try catch了


说得好!
0 请登录后投票
   发表时间:2011-10-11  
ansjsun 写道
aa87963014 写道
iminto 写道
aa87963014 写道
我的马甲01 写道
aa87963014 写道
543089122 写道



计算机又不知道计算出的结果毫无意义,人家只知道除0它搞不定(抛异常),其他都能搞定



这个结果本身属于溢出。既然溢出本身就应该是错的。既然知道除0是错的(抛异常)
为何溢出又不是错的,不抛异常?


你傻啊,溢出 =!异常
溢出 谁跟你说错了?

而且编码和解码中经常会出现溢出后的值运算

我是傻,从没见过溢出后的值计算。

麻烦举个例子?

散列和二进制计算里 故意溢出多的是。溢出就溢出了,溢出又不是错误,为什么要抛异常????

我没接触过散列计算,但是溢出不是错误那还有什么是错误?

如果这个溢出不是错误,难道这个 - xxxx 结果是正确的?



不知者无畏...int是基本数据类型.直接操作的就是位了.并没有在外面做封装..
也就是java既然有了Integer为啥非要用int..
如果java把基本数据类型全部包装掉..我感觉性能上肯定有很大的问题了


还有.散列..hash...你看看String类的hash你就明白了...

能想到这个例子的哥们不错....这道题的错是你在.本该是long级别的数据费用要int来处理..


如果这个都抛出异常..那么jdk都跑不起来了...



呃,long也是会溢出的。
0 请登录后投票
   发表时间:2011-10-11  
有个BigDecimal可以用,为什么不用BigDecimal进行计算?
0 请登录后投票
   发表时间:2011-10-11  
骨之灵魂 写道
hand515 写道
aa87963014 写道
骨之灵魂 写道
楼主, 1 - 0.9 等于多少?
那这句:
System.out.println(1-0.9);
是不是也该抛出异常??


数据类型转换 换不了就抛异常 有什么问题?

这不是数据类型转换的问题吧,分明就是和浮点数在内存中的表示有关系啊

唉 想起了那句话: 楼主用他丰富的经验打败了一整楼的人。

这句+1
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics