关于变量定义类型的问题

gwallan 2003-08-08 01:04:10
我把变量定义了INT型,为什么还是出错?
import java.awt.*;
import java.applet.*;


public class Biao extends Applet {

public void paint(Graphics g) {
int num1,num2,num3,yPos=40;

g.drawString("N", 25, 25 );
g.drawString("10*N", 75, 25 );
g.drawString("100*N", 125, 25 );
g.drawString("1000*N", 175, 25 );

for(int n=1;n<=5;n++){
num1=n*Math.pow(10,n);
num2=n*Math.pow(10,n+1);
num3=n*Math.pow(10,n+2);
g.drawString(Integer.toString(n),25, yPos );
g.drawString(Integer.toString(num1), 75, yPos );
g.drawString(Integer.toString(num2), 125, yPos );
g.drawString(Integer.toString(num3), 175, yPos );
yPos+=20;
}
}
}


biao.java:28: possible loss of precision
found : double
required: int
num1=n*Math.pow(10,n);
^
biao.java:29: possible loss of precision
found : double
required: int
num2=n*Math.pow(10,n+1);
^
biao.java:30: possible loss of precision
found : double
required: int
num3=n*Math.pow(10,n+2);
^
3 errors
...全文
58 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
onefox 2003-08-08
  • 打赏
  • 举报
回复
Math.pow() 返回的是 double 型

double * int 结果还是 double

所以这里 num1 、num2 类型不匹配

如果num1 num2一定要用 int

可以强制转型,但这样会降低数值精度

num1 = (int)(n * Math.pow(10, n));
或 num1 = n * (int)Math.pow(10, n);

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧