math.power给出了意外结果

时间:2019-08-25 20:05:32

标签: java

我不明白为什么我的输出比合理的输出低100倍。

public class Solution{

    public static void main(String []args){
       String jj = "";

       for(double k=0;k<10;k++){
          double kk = Math.pow(k, 2);
          jj = jj + kk;
       }   

       System.out.println(jj);
    }
}

我希望简单地得到前11个整数的平方

1 个答案:

答案 0 :(得分:2)

您当前的for是从0到10(不包括在内),因此有10个值(0、1、2、3、4、5、6、7、8、9)。

如果要包含10值,请将for的结束条件更改为k <= 10k < 11

  • 没有理由为double使用k
  • Math.pow的结果转换为long
  • 在数字之间添加空格
public static void main(String[] args) {
    String jj = "";

    for (int k = 0; k <= 10; k++) {
        long kk = (long) Math.pow(k, 2);
        jj = jj + " " + kk;
    }
    System.out.println(jj);
}

输出

0 1 4 9 16 25 36 49 64 81 100