[英]I cant seem to convert double to int
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。
嘗試這個:
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 ");
}
從給定代碼的外觀來看,您似乎忘記在末尾添加 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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.