繁体   English   中英

将双精度拆分为数组Java

[英]Splitting a double into an array Java

我正在写一个程序,将程序更改为数组。 所以,如果我有这个:

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

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

String s = Double.toString(d);

然后解析它跳过小数点,并填充您的数组。

请尝试这个

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

    }

输出中

1
2
5
4
6
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 = 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM