2

我想知道是否可以从两个整数中设置一个双精度数,比如:

int i = 1;
int j = 2;

double l = i.j;

所以希望我设置为 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);
    }
}
4

6 回答 6

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

这个怎么样?我知道Stringconcat 和 stuff 会很烦人(主要是例外),但当然,如果i&j肯定会是数字,这可以帮助你。

于 2013-03-22T14:23:13.567 回答
2

这应该可行,尽管我不明白在国际象棋游戏中双打的作用:

int i = 1;
int j = 2;
double piece = i + j /  Math.pow(10.0 , String.valueOf(j).length()) 
于 2013-03-22T14:23:10.120 回答
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);

输出:

1234.56789
于 2013-03-22T14:22:04.383 回答
0

这个解决方案怎么样:

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

它适用于 0 到 9 (10 > j >= 0) 之间的 j 值;

于 2013-03-22T14:22:31.577 回答
0

干得好

int i = 1;
int j = 2;

double l = ((double)i*10+j)/10;
于 2013-03-22T14:24:57.277 回答
0

如果要将两个整数设置为一个 double,则必须采用另一种方式。

试试这个:

int first = 1;
int second = 22;

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

double firstD = first;
double result = firstD + secondD;
//result = 1.22
于 2013-03-22T14:26:48.360 回答