亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我似乎無法將 double 轉換為 int

我似乎無法將 double 轉換為 int

陪伴而非守候 2022-06-30 11:20:03
     int a = 1;  double b = 1.0;  double l = 10;for (int i=1;i<=3;i++){  a=(int) b;   System.out.println("");   for (a=a;a<=l;a++){       System.out.print(a+" ");              }   l=l*2;   System.out.println("");   for ( b=a;b<=l;b++){System.out.print(b+" ");a=(int) b;不起作用請幫忙。輸出應顯示:1 2 3 4 5 6 7 8 9 10 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21 22 23 24 25 26 27...每次從整數到雙倍交替,直到達到 100。
查看完整描述

2 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

從給定代碼的外觀來看,您似乎忘記在末尾添加 2 個右括號。這是我添加右括號并將它們放在主函數中時的代碼:


public static void main (String[] args)

  {

    int a = 1;

    double b = 1.0;

    double l = 10;


    for (int i=1;i<=3;i++){


      a=(int) b;

      System.out.println("");

      for (a=a;a<=l;a++){

        System.out.print(a+" ");           

      }

      l=l*2;

      System.out.println("");


      for ( b=a;b<=l;b++){

        System.out.print(b+" ");


        a=(int) b;

      }

    }

  }

}

這是您的程序的輸出:


1 2 3 4 5 6 7 8 9 10 

11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 


21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0 31.0 32.0 33.0 34.0 35.0 36.0 37.0 38.0 39.0 40.0 


41.0 42.0 43.0 44.0 45.0 46.0 47.0 48.0 49.0 50.0 51.0 52.0 53.0 54.0 55.0 56.0 57.0 58.0 59.0 60.0 61.0 62.0 63.0 64.0 65.0 66.0 67.0 68.0 69.0 70.0 71.0 72.0 73.0 74.0 75.0 76.0 77.0 78.0 79.0 80.0

雖然輸出不是您想要的,但它表明您從 double 到 int 的轉換有效。問題可能是語法錯誤。如果您只對輸出感興趣,我可以提供另一種方法:


public static void main (String[] args) throws java.lang.Exception

    {

        for (int i = 1; i < 100; ++i) {

            if (((i-1) / 10) % 2 == 0) {

                System.out.print(i);

            } else {

                System.out.print(Integer.toString(i) + ".0");

            }

            System.out.print(" ");

        }

        System.out.print(100.0);

    }


查看完整回答
反對 回復 2022-06-30
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

嘗試這個:


for(int i = 0 ; i < 100 ; i+=10){


        for(int j = 1 ; j <= 10 ; j++){


            if((i/10)%2 != 0){

                double d = i+j;

                System.out.print(d+" ");

            }else{

                System.out.print((i+j)+" ");

            }


        }

    }

您也可以這樣做,而不是將其轉換為雙精度,


            if((i/10)%2 != 0){

                System.out.print((i+j)+".0 ");

            }


查看完整回答
反對 回復 2022-06-30
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號