float element= 0;
int element_1= 18
int lsbzsize = 21;
element=element_1/lsbzsize;
为什么最后得到的element结果总是0.0呀?(java)
1、 为求解增加输出语句:
System.out.println(element_1/lsbzsize);输出结果为0
2、 试着直接输出分数:
System.out.println(12/18);输出结果为0
猜想是不是舍去了小数部分?
3、 试着直输输出假分数
System.out.println(100/18);输出结果为5
结论:直接输出的分数被舍去了小数部分,只显示整数部分。
4、 注意到System.out.println(float f)提示,于是调整输出
System.out.println(100/18 f);输出结果为5.5555553得到小数部分
结论:要想让系统认别你的数是一个浮点数,就必须要在这个数的后面加f。
5、 猜想:如果把element_1/lsbzsize转化为系统可认别的浮点型是问题解决的出口。
于是增加输出
System.out.println((float)element_1/lsbzsize);显示结果:0.6666667即为自己需要的。
6、 找到解决问题之法:
element=(float) element_2/lsbzsize;