本帖最后由 尘缘丶 于 2017-5-9 17:32 编辑
话题开始前,我想说一句无关的话题,也是鼓励像我一样的初学者
如果有什么简单易懂的源码或者成品软件,欢迎分享并分析给大家看,没准你发的一个帖子被其他人看到正好让别人收益呢,而且也能带动别人一起互动
我之前胆怯,不敢发帖,怕被论坛大佬嘲笑,但是我今天看见一位同学发的求助帖有我刚学过的东西,但是他的帖子没有分析,我就充当解说员吧,给大家分析一下
昨天下午看见一个论坛朋友3月20号发的一个求助帖,原帖地址:http://www.52pojie.cn/thread-591629-1-1.html
我这个刚学了1个月的Java弱鸡来分析下吧 分析之前先喊原帖楼主
@lmq2008
此楼主的源码:
[Java] 纯文本查看 复制代码 public class text{
public static void main(String[] args){
double b=3.0;
double sum=30000;
double i=0.1;
double c=b+i;
while(i<=0.3){
sum=sum+c*360;
System.out.println(sum);i++;
}
}
}
我们可以看出,最起码的不算大错的错误就是类名首字母必须大写并且每行只允许有一条代码,这是规范
我觉得最简单的解决办法就是:
[Java] 纯文本查看 复制代码 package Qb;
public class Txx {
public static void main(String[] args) {
double b = 3.0;
double sum = 30000;
double q=0.1;
double c = b + q;
for (int i = 1;i <= 3;i++) {
sum = sum + c*360;
System.out.println(sum);
q+=0.1;
}
}
}
运行结果如下:
但是我觉得楼主是不想创建新的变量,所以我又想办法:
[Java] 纯文本查看 复制代码 package Bb;
import java.text.DecimalFormat;
public class Qe {
public static void main(String[] args) {
double b = 3.0;
double sum = 30000;
float i = 0.1f;
double c =b+i;
while (i <= 0.3) {
sum=sum+c*360;
DecimalFormat df = new DecimalFormat("0.0");
System.out.println(df.format(sum));
i += 0.1;
}
}
}
运行结果如下:
我们发现,结果不对,因为Double精度丢失,0.3变成0.30000000000000004 循环条件就不对了,这个我也很无奈啊,期待大牛给一个解决方案
循环条件只能改成i<0.4才可以正常运行,继续测试吧,这个一目了然,还是给大家演示一下吧
[Java] 纯文本查看 复制代码 package Bb;
import java.text.DecimalFormat;
public class Qe {
public static void main(String[] args) {
double b = 3.0;
double sum = 30000;
float i = 0.1f;
double c =b+i;
while (i < 0.4) {
sum=sum+c*360;
DecimalFormat df = new DecimalFormat("0.0");
System.out.println(df.format(sum));
i += 0.1;
}
}
}
我会的也只有这些,觉得有帮助可以送我热心哦,小弟初学Java
发帖之后发现,图片都是在底部,有顺序的 |