我是这方面的新手,我不知道如何将双数字存储到数组中。我有这个双倍价值:0120.1098
我想将它存储为这样的东西:
value[1] = 0
value[2] = 1
value[3] = 2
value[4] = 0
value[5] = 1
`
依旧......
我该怎么做?
答案 0 :(得分:0)
我不确定你是否真的需要提取它们,但由于我对你的背景知之甚少,所以你走了。
您可以将其转换为String
,将其拆分为.
并进行迭代。这样你就得到了两个int数组。一个用于小数点前的数字,另一个用于小数点后的数字。
public static void main(String[] args) {
double d = 12323.213432;
String asString = String.valueOf(d);
String[] splitOnDecimal = asString.split("\\.");
int[] upperBound = getIntArray(splitOnDecimal[0]);
int[] lowerBound = getIntArray(splitOnDecimal[1]);
System.out.println(Arrays.toString(upperBound));
System.out.println(Arrays.toString(lowerBound));
}
private static int[] getIntArray(String numberString) {
int[] tmpArray = new int[numberString.length()];
for (int i = 0; i < numberString.length(); i++) {
tmpArray[i] = Integer.parseInt(numberString.substring(i, i + 1));
}
return tmpArray;
}
答案 1 :(得分:0)
试试这个,它甚至会显示你的零:
String dbl = "0012300.00109800";
int dblArraylength = dbl.length();
char[] c = dbl.toCharArray();
int dotId= dbl.indexOf(".");
int a[] = new int[dblArraylength-1];
for(int i=0; i<dotId; i++){
a[i]=Integer.parseInt(Character.toString ((char)c[i]));
}
for(int i=dotId; i<a.length; i++){
a[i]=Integer.parseInt(Character.toString ((char)c[i+1]));
}
for(int i=0; i<a.length; i++){
System.out.println("a[" +i+ "] = " + a[i]);
}