java Rect.java输出问题

[复制链接]
查看11 | 回复2 | 2011-3-5 00:51:21 | 显示全部楼层 |阅读模式
文件:
Rect.java
public class Rect
{
double width;
double height;
double getArea()
{

double area=width*height;

return area;
}
}
Example.java
public class Example
{
public static void main(String args[]){
Rect rectangle1,rectangle2;
rectangle1=new Rect();
rectangle2=new Rect();
rectangle1.width=128;
rectangle1.height=69;
rectangle2.width=18.9;
rectangle2.height=59.8;
double area=rectangle1.getArea();
System.out.println("rectangle1的面积为:"+area);
area=rectangle2.getArea();
System.out.println("rectangle2的面积为:"+area);
}
}
rectangle2的输出面积不对吧,怎么会这么长呢???


回复

使用道具 举报

千问 | 2011-3-5 00:51:21 | 显示全部楼层
使用Java,double 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1。 特别在实际项目中,通过一个公式校验该值是否大于0,如果大于0我们会做一件事情,小于0我们又处理其他事情。 这样的情况通过double计算出来的结果去和0比较大小,尤其是有小数点的时候,经常会因为精度丢失而导致程序处理流程出错。 这里有篇文章,你可以去看看怎么处理http://zhaow-381002134.javaeye.com/blog/420369
回复

使用道具 举报

千问 | 2011-3-5 00:51:21 | 显示全部楼层
应该是精度丢失!在java中使用double类型数据进行运算是经常会出现精度丢失的情况,值会有0.00000****001的偏差,特别是当小数点后的两位数字相同时会出现!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行