2013-03-22 40 views
2

我想知道是否有可能從兩個整數集雙,說:我可以從兩個整數中設置一個double嗎?

int i = 1; 
int j = 2; 

double l = i.j; 

所以希望有l設置到1.2。

我目前用循環嘗試此,但沒有什麼是未來的那樣:

for (int i = 0; i < 8; i++){ 
    for(int l = 0; l < 8; l++){ 
     double piece = i.l; 
      ChessSquare chessSquare = new ChessSquare(i, l, piece); 
      int[][] square = new int[i][l]; 
      frame.add(chessSquare); 
    } 
} 
+0

你是什麼意思?你正在嘗試使用double來存儲兩個整數? – 2013-03-22 14:21:00

+0

這似乎不是一個使用'double'的好地方。它在「ChessSquare」中的作用是什麼? – akaIDIOT 2013-03-22 14:21:08

+1

你可以將第二個int除以10.0並添加它? – turbo 2013-03-22 14:21:08

回答

6
int i=1; 
int j=2; 
String s = i+"."+j; 
double d = Double.parseDouble(s); 
System.out.println(d); 

這個怎麼樣?我知道String concat和東西會很煩人(主要例外),但當然,這可以幫助你,如果i & j肯定會是數字。

+2

什麼是奇妙的醜陋解決方案:D – akaIDIOT 2013-03-22 14:25:19

+0

謝謝,像一個魅力:) – JmJ 2013-03-22 15:08:58

1
int i = 1; 
int j = 2; 

double l = i + j/Math.pow(10, Math.floor(Math.log10(j) + 1)); 

例如:

int i = 1234; 
int j = 56789; 

double l = i + j/Math.pow(10, Math.floor(Math.log10(j) + 1)); 

System.out.println(l); 

OUTPUT:

1234.56789 
+1

+1用於解決aj> = 10的問題 – turbo 2013-03-22 14:32:55

0

這個解決方案怎麼樣:

double l = i + (j/10d); 

它適用於0到9之間的j值(10> j> = 0);

1

這應該工作,雖然我不明白的地方雙進場一盤棋:

int i = 1; 
int j = 2; 
double piece = i + j/Math.pow(10.0 , String.valueOf(j).length()) 
+1

+1用另一種方法解決aj> = 10的問題:) – 2013-03-22 14:44:54

0

在這裏你去

int i = 1; 
int j = 2; 

double l = ((double)i*10+j)/10; 
0

如果要設置兩個整數一張雙人牀必須走另一條路。

試試這個:

int first = 1; 
int second = 22; 

double secondD = second; 
while (secondD > 1) { 
    secondD /= 10; 
} 

double firstD = first; 
double result = firstD + secondD; 
//result = 1.22 
+1

你的while循環將返回0,將其更改爲'secondD> 1',併除以10。0而不是10 – turbo 2013-03-22 14:30:23

+0

你是對的,我很抱歉 – Zelldon 2013-03-22 14:33:41

+0

你仍然需要將'secondD/= 10'改爲'secondD/= 10.0',用int除int將最終返回0。 – turbo 2013-03-22 14:36:37

相關問題