将每个数字从double存储到数组

时间:2017-01-19 11:27:07

标签: arrays

我是这方面的新手,我不知道如何将双数字存储到数组中。我有这个双倍价值:0120.1098

我想将它存储为这样的东西:

value[1] = 0
value[2] = 1
value[3] = 2
value[4] = 0
value[5] = 1

`

依旧......

我该怎么做?

2 个答案:

答案 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]); 
    }