Java double vergleichen boolean?
Hallo,
meine Aufgabe ist es double zu vergleichen, aber die == führt immer zu false und .equals(..) macht ein Fehler.
Habt ihr ne Ahnung woran es liegt?Also mit int klappt es. Die Methode soll sowohl int als auch double vergleichen können. Ich kann als use selber entscheiden am Anfang entscheiden ob ich int Array oder double Array erstelle. Dann schreibe ich das value rein im Hauptmenü und die Methode guckt ob die Zahl im Array vorhanden ist und gibt halt dementsprechend true or false
Den Code kann man kaum lesen. Mach ein größeres Bild, schreib den Code direkt hier rein (Im Code-Bereich) oder nutze Anbieter wie pastebin.com
public boolean search(T value){
boolean is = false;
for(int i = 0; i<Array.length;i++){
if(Array[i]==value){
is=true;
}}
if(is== true){
return true;
}else{
return false;
}}
3 Antworten
Wozu sagt man, Du sollst den Code im Code-Bereich schreiben, gutefrage.net hat eine extra Funktion dafür, das ist kein Hexenwerk ...
Wie auch immer - die Genauigkeit von Double ist begrenzt, es kann zu kleinen Abweichungen im Nachkommastellen-Bereich kommen. Double sollte man daher nicht direkt vergleichen, sondern vorher immer runden.
Double solltest du nicht mit == vergleichen. Da musst du z.B. schauen a < b+1 && a >b-1 ist, runden, oder so was ähnliches. Denn bei Doubles gibt 10-5 vermutlich nicht 5 aus sondern 4.99999.. oder 5.000000...1. Bei floating Point zahlen hast du fast nie ganze zahlen. Einfach weil das halt dargestellt wird als y^z
Moin!
Runde mal den Double jeweils und vergleiche dann im If. Der Double ist oft nicht genau eine Zahl, sondern weicht leicht ab.