JAVA代码找错误

enjoysunnny555 2019-03-18 09:12:39
public class ex_1{   public static void main(String[]args){   int i,j;   float f1=0.1;  float f2=123;   double d1=2e20,d2=124;   byte b1=1,b2=2,b3=129;   j=j+10; i=i/10;  i=i*0.1;   char c1=‘a’, c2=125;   byte b=b1-b2;  char c=c1+c2-1;   float f3=f1+f2;   float f4=f1+f2*0.1;   double d=d1*i+j;   float f=(float)(d1*5+d2);   }   }
...全文
470 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
晨埃 @ 2019-07-30
  • 打赏
  • 举报
回复
代码的数据类型转换有误,并且运算有些地方也不对 建议重新看下类型的转换
千里送人头 2019-03-28
  • 打赏
  • 举报
回复
楼主,像这种问题,一般都是放在IDE上直接编译一下,哪里有问题,直接就显示出来了.
enjoysunnny555 2019-03-26
  • 打赏
  • 举报
回复
引用 10 楼 bcsflilong的回复:

public class ex_1 {

public static void main(String[]args){



int i = 0, j = 0;



float f1=0.1f; float f2=123;



double d1=2e20,d2=124;



byte b1=1,b2=2,b3=(byte) 129;



j=j+10; i=i/10; i=(int) (i*0.1);



char c1='a', c2=125;



byte b=(byte) (b1-b2); char c=(char) (c1+c2-1);



float f3=f1+f2; float f4=(float) (f1+f2*0.1);



double d=d1*i+j;



float f=(float)(d1*5+d2);



}

}
已完成修改,谢谢
bcsflilong 2019-03-26
  • 打赏
  • 举报
回复

public class ex_1 {

public static void main(String[]args){



int i = 0, j = 0;



float f1=0.1f; float f2=123;



double d1=2e20,d2=124;



byte b1=1,b2=2,b3=(byte) 129;



j=j+10; i=i/10; i=(int) (i*0.1);



char c1='a', c2=125;



byte b=(byte) (b1-b2); char c=(char) (c1+c2-1);



float f3=f1+f2; float f4=(float) (f1+f2*0.1);



double d=d1*i+j;



float f=(float)(d1*5+d2);



}

}
没有十八岁 2019-03-26
  • 打赏
  • 举报
回复
你这个赋值有问题啊。
enjoysunnny555 2019-03-18
  • 打赏
  • 举报
回复
引用 3 楼 z_yemu的回复:
//这里问题都是高精度转低精度
float f1=0.1; // 这里java浮点数默认是双精度类型,如果真的需要 就要这么写 0.1f ,
byte = 129; // byte 最大值 127,过了127 是 int类型
int i , i=i/10; // 首先 i是局部变量,没有默认值,需要初始化
byte b=b1-b2;// 运算时,默认会转为 Int 类型
char c=c1+c2-1; // 字符运算是通过 ASCLL 码值运算,需要用 int 类型接收
float f4=f1+f2*0.1;// 乘以 0.1 是 double 类型
谢谢,但运行报错public class未知
enjoysunnny555 2019-03-18
  • 打赏
  • 举报
回复
谢谢,我都忘了可以运行一遍
z_yemu 2019-03-18
  • 打赏
  • 举报
回复
//这里问题都是高精度转低精度
float f1=0.1; // 这里java浮点数默认是双精度类型,如果真的需要 就要这么写 0.1f ,
byte = 129; // byte 最大值 127,过了127 是 int类型
int i , i=i/10; // 首先 i是局部变量,没有默认值,需要初始化
byte b=b1-b2;// 运算时,默认会转为 Int 类型
char c=c1+c2-1; // 字符运算是通过 ASCLL 码值运算,需要用 int 类型接收
float f4=f1+f2*0.1;// 乘以 0.1 是 double 类型
_Ricky_ 2019-03-18
  • 打赏
  • 举报
回复
第一行,int i,j; 要设置默认值,否则后面进行运算的时候会编译不通过 第二行:float f1=0.1; float f2=123; 改成float f1=0.1f; float f2=123f; 第三行 double是双精度类型
931828653 2019-03-18
  • 打赏
  • 举报
回复
自己运行一边不就完了
z_yemu 2019-03-18
  • 打赏
  • 举报
回复
引用 5 楼 enjoysunnny555的回复:
[quote=引用 3 楼 z_yemu的回复:]//这里问题都是高精度转低精度
float f1=0.1; // 这里java浮点数默认是双精度类型,如果真的需要 就要这么写 0.1f ,
byte = 129; // byte 最大值 127,过了127 是 int类型
int i , i=i/10; // 首先 i是局部变量,没有默认值,需要初始化
byte b=b1-b2;// 运算时,默认会转为 Int 类型
char c=c1+c2-1; // 字符运算是通过 ASCLL 码值运算,需要用 int 类型接收
float f4=f1+f2*0.1;// 乘以 0.1 是 double 类型
谢谢,但运行报错public class未知[/quote] 你自己看看还有哪出问题吧,class未知,可能是你文件名不一直

62,615

社区成员

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

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