Java double vergleichen boolean?

Palladin007  18.05.2020, 23:35

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

Fujin261 
Fragesteller
 18.05.2020, 23:40


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.

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting