0

double を配列に変更するプログラムを作成しています。だから私がこれを持っていたら:

double d = 1.23456

次のような配列が必要です。

array[0] = 1
array[1] = 2
array[2] = 3

等々。

もう一つの例:

double d = 3.1415926

array[0] = 3
array[1] = 1
array[5] = 9

あなたの何人かは私のコードを見たいと思ったので、ここにあります:

long l = (new Double(3.1415926)).longValue();
String s = Long.toString(l);
System.out.println(l); //prints 3, so splitting won't have any effect
System.out.println(s); //prints 3, so splitting won't have any effect
4

4 に答える 4

3

おそらく最も簡単な解決策は、double から文字列を作成することです。

String s = Double.toString(d);

次に、小数点をスキップして解析し、配列に入力します。

于 2013-10-16T18:29:39.720 に答える
0
double d = 1.23456;

ArrayList<Integer> arrayList = new ArrayList<>();
while (d != 0) {
    arrayList.add((int) d);
    d = (d - ((int) d)) * 10.0;
}
System.out.println(arrayList.toString());

おそらく最善の解決策ではありませんが、うまくいくはずです。

于 2013-10-16T18:38:32.793 に答える
0
double d = 3.14159;
String s = String.valueOf(d); // convert the double to a string
s = s.replace(".", ""); // delete all dots from the string
int[] ints = new int[s.length()]; // create an array to hold each digit
for (int i = 0; i < ints.length; i++) { // foreach character in the string
     // convert the next character in the string to an int and save it to array
    ints[i] = Integer.parseInt(s.substring(i, i + 1));
}
// print the array
for (int i : ints) System.out.println(i);
于 2013-10-16T18:38:42.280 に答える