初学JAVA,简单问题请别见笑

项目管理PMO 2002-03-20 09:39:35
程序:
// filename TestPrint.java
// This is a test program
public class TestPrint {
public static void main(String args[]) {
int i = 10;
long l = 100;
float f = 0.1;
double d = 0.01;
boolean b = true;
char c = 'a';
String str = "this is a string";
char ch[] = {'c','h','a','r','a','r','r','a','y'};
System.out.print("i = " + i);
System.out.println(" l = " + l);
System.out.print("f = " + f);
System.out.println(" d = " + d);
System.out.print("b = " + b);
System.out.println(" c = " + c);
System.out.print("str = " + str);
System.out.println(" ch = " + ch);
}
}

用JB6带的jdk1.3.1编译:
C:\>javac TestPrint.java
TestPrint.java:7: possible loss of precision
found : double
required: float
float f = 0.1;
^
1 error

问题:为什么会出现上边的错误?

我把0.1改成1就可以编译通过,但执行结果为:
C:\>java TestPrint
i = 10 l = 100
f = 1.0 d = 0.01
b = true c = a
str = this is a string ch = [C@77d134

问题:为什么ch不是char array?如何输出char array?
...全文
26 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwangl 2002-03-20
  • 打赏
  • 举报
回复
java!=C++没有指针了!
wisure 2002-03-20
  • 打赏
  • 举报
回复
for(i=0;i<ch.Length()-1;i++){
System.out.print(ch[i]);
};


wisure 2002-03-20
  • 打赏
  • 举报
回复
for(i=0;i<ch.Length();i++){
System.out.print(ch[i]);
};
项目管理PMO 2002-03-20
  • 打赏
  • 举报
回复
兄弟所言极是,我刚才也想通了。只要写成0.1d就可以了。不知道第二个问题有朋友给解释一下吗?
wwangl 2002-03-20
  • 打赏
  • 举报
回复
0.1在java中默认为double类型,赋值给float会损失精度,1赋值给float类型的变量会自动转换成float类型

62,614

社区成员

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

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