精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2011-10-11
hand515 写道 aa87963014 写道 骨之灵魂 写道 楼主, 1 - 0.9 等于多少?
那这句: System.out.println(1-0.9); 是不是也该抛出异常?? 数据类型转换 换不了就抛异常 有什么问题? 这不是数据类型转换的问题吧,分明就是和浮点数在内存中的表示有关系啊 唉 想起了那句话: 楼主用他丰富的经验打败了一整楼的人。 |
|
返回顶楼 | |
发表时间: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了 说得好! |
|
返回顶楼 | |
发表时间: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也是会溢出的。 |
|
返回顶楼 | |
发表时间:2011-10-11
有个BigDecimal可以用,为什么不用BigDecimal进行计算?
|
|
返回顶楼 | |
发表时间:2011-10-11
骨之灵魂 写道 hand515 写道 aa87963014 写道 骨之灵魂 写道 楼主, 1 - 0.9 等于多少?
那这句: System.out.println(1-0.9); 是不是也该抛出异常?? 数据类型转换 换不了就抛异常 有什么问题? 这不是数据类型转换的问题吧,分明就是和浮点数在内存中的表示有关系啊 唉 想起了那句话: 楼主用他丰富的经验打败了一整楼的人。 这句+1 |
|
返回顶楼 | |