将double拆分为数组Java

将double拆分为数组Java,java,arrays,double,Java,Arrays,Double,我正在编写一个程序,它可以将双倍数转换为数组。如果我有这个: 双d=1.23456 我想要一个这样的数组: array[0] = 1 array[1] = 2 array[2] = 3 等等 另一个例子: double d = 3.1415926 到 你们中的一些人想看看我的代码,所以这里是: long l = (new Double(3.1415926)).longValue(); String s = Long.toString(l); System.out.println(l); //

我正在编写一个程序,它可以将双倍数转换为数组。如果我有这个:

双d=1.23456

我想要一个这样的数组:

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

另一个例子:

double d = 3.1415926

你们中的一些人想看看我的代码,所以这里是:

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

也许最简单的解决方案是从double创建字符串:

String s = Double.toString(d);

然后跳过小数点对其进行解析,并填充数组。

也许最简单的解决方案是从double创建一个字符串:

String s = Double.toString(d);
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());
然后跳过小数点对其进行解析,并填充数组。

double d=1.23456;
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());
ArrayList ArrayList=新的ArrayList(); 而(d!=0){ arrayList.add((int)d); d=(d-((int)d))*10.0; } System.out.println(arrayList.toString());
可能不是最好的解决方案,但它应该会起作用。

double d=1.23456;
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);
ArrayList ArrayList=新的ArrayList(); 而(d!=0){ arrayList.add((int)d); d=(d-((int)d))*10.0; } System.out.println(arrayList.toString());
可能不是最好的解决方案,但它应该会起作用。

double d=3.14159;
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);
字符串s=String.valueOf(d);//将double转换为字符串 s=s.替换(“.”,“);//删除字符串中的所有点 int[]int=new int[s.length()];//创建一个数组来保存每个数字 对于(inti=0;i
双d=3.14159;
字符串s=String.valueOf(d);//将double转换为字符串
s=s.替换(“.”,“);//删除字符串中的所有点
int[]int=new int[s.length()];//创建一个数组来保存每个数字
对于(inti=0;i
请试试这个

 public static void main(String[] args) 

    {
        Double d = 1.2546;

        String s = d.toString();
        int a[] = new int[s.length()];
        for(int i=0;i<s.length();i++)
        {
            if(s.charAt(i)!='.')
            {
                a[i]=Integer.parseInt(s.charAt(i)+"");
                System.out.println(a[i]);
            }
        }

    }
请试试这个

 public static void main(String[] args) 

    {
        Double d = 1.2546;

        String s = d.toString();
        int a[] = new int[s.length()];
        for(int i=0;i<s.length();i++)
        {
            if(s.charAt(i)!='.')
            {
                a[i]=Integer.parseInt(s.charAt(i)+"");
                System.out.println(a[i]);
            }
        }

    }

让我们看看你的企图,我想要世界和平。请告诉我们您的尝试。第二个例子似乎是正确的。@Kireko先生告诉我们您的尝试要求是模糊的。在小数点之前,双精度总是只有1位数吗?另外(假设第一个问题为“否”),应该将“123.4”映射到与“1.234”相同的数组吗?向我们展示您的尝试。我想要世界和平。请告诉我们您的尝试。第二个例子似乎是正确的。@Kireko先生告诉我们您的尝试要求是模糊的。在小数点之前,双精度总是只有1位数吗?此外(假设第一个问题为“否”),应该将“123.4”映射到与“1.234”相同的数组?它应该是注释,而不是问题的答案。@算法学家它是答案。它应该是注释,而不是问题的答案。@Algorithmist它是答案。