JAVA之SquareApplet平方问题

[复制链接]
查看11 | 回复1 | 2008-8-12 07:04:58 | 显示全部楼层 |阅读模式
//SquareApplet.java
import java.awt.Graphics;
import javax.swing.*;
public class SquareApplet extends JApplet
{
double n;
double s;
public void init()//init()是java.applet.Applet的一个方法,是由浏览器调用的

{

String nStr = JOptionPane.showInputDialog("输入一个浮点数:");

n = Double.parseDouble(nStr);//将字符串转换为double双精度数

s = n*n;

}
public void paint(Graphics g)

{

g.drawRect(40,30,420,55);//绘制矩形,40,30为起点,460,55为x,y的增量

g.drawString(n + "的平方为:" + s,50,50);

}
}
我输入n为1.5,计算出来s为2.25,正确。
可我输入n为1.6,计算出来s怎么为2.5600000000005呢?
把n定义为float,n = Float.parseFloat(nStr);
还是会出现上面的计算问题,
狂晕中,请大侠指点~~~

回复

使用道具 举报

千问 | 2008-8-12 07:04:58 | 显示全部楼层
可以说几乎所有计算机语言的浮点数都是不精确的比如说1.56 他可能存储的是1.5600000000002都有可能 这个是没办法的如果你觉得这样太不精确 可以使用BigDecimal这个类,它可以非常精确的计算浮点数
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行