2013-06-06 42 views
0
List<double[]> x = new ArrayList<double[]>(); 
    x.add(new double[] { 1, 1.2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }); 

如何使用java代码在x List中查找不是整数类型(1.2)?如何找到列表数组中的int元素

+7

'1.2'不是整数。 – Blorgbeard

+0

“for-loop”有什么问题? – MadProgrammer

+0

您是否希望找到1.2利用它已排序的事实,或者您没有保证排序? – Patashu

回答

1

试试这个:

for (double d : x.get(0)) { 
System.out.println("Not Integer:" + ((int) (d * 10)/10 != d)); 
} 

更新(这应该是足够的和):

System.out.println("Not Integer:" + ((int) d != d)); 
+0

非常感谢你 – dickfala

0

EDIt:我刚刚明白了这个问题。因此,这里是更新的答案

List<double[]> x = new ArrayList<double[]>(); 
    x.add(new double[] { 1, 1.2, 2.9, 3.9, 4.1, 5.5, 6, 7, 8, 9, 10, 11, 12 }); 

    List<Double> foundDoubles = new ArrayList<Double>(); 

    int i = 0; 
    for(double d : x.get(0)) { 
     i = (int)d; 
     if(i != d) { 
      foundDoubles.add(d); 
     } 
    } 

    for(double d : foundDoubles) { 
     System.out.println(d); 
    } 
} 
+3

如果你用'=='比较'double'和另一个'double',你将会有一段糟糕的时间...... –

+0

如果我不知道1.2列表中的元素。如何找到1.2元素?谢谢。 – dickfala

+0

@LuiggiMendoza,你可以请解释 – stinepike

0

你可以尝试以下方法:

for(double i : x) { 
    String total2 = String.valueOf(i); 
    if(i.contains(".")){ 
    // ... 
    } 
} 

,或者您可以使用if(Math.floor(i) > 0)改变为String aproarch。

+0

非常感谢你〜 – dickfala

0

我是新来的Java:P但我认为直接比较不会好?

double a = 1; 
double b = 1; 
double c = a-b; 
if (Math.abs(c) == 0) {...} 

基本上将另一个原语设置为您要查找的值。从列表中减去该值。如果索引之一包含1.2比1.2-1.2 = 0?比你知道它在哪里?

+0

这有什么不同?你仍然会招致相同的不准确 – Craig

+0

非常感谢你〜 – dickfala

相关问题