Auf Quadratwurzel prüfen

Luk10

Top Contributor
Grüße,

Ich wollte nur kurz Absichern, ob folgende Methode korrekterweise auf die Ganzzahligkeit (Keine Nachkomma-Stellen) eine Wurzel aus einer natürlichen Zahl überprüft:

Java:
public boolean checkRoot(double in) {
		
		double root = Math.sqrt(in);
		int square_root = (int) root;
		
		if (root == square_root) {
			
			return true;
			
		}
		
		return false;
}

Mein Gedankengang:

> Ziehe die Wurzel aus in
> Caste den Wert zu einem Int (Nachkomma-Stellen fallen, wenn vorhanden, weg)

> Überprüfe ob beide Werte übereinstimmen


Funktioniert das so sicher? Habe gerade keine Möglichkeit das zu testen.
Danke,

-Luk10-
 
Zuletzt bearbeitet:
Öhm.. entweder hab ich grad nen Brainlaag oder...

Java:
double root = Math.sqrt(in);
        int square_root = (int) root;
        
        if (root == square_root)

du sagst das square_root = root ist und überprüfst das dann?

P.S.: Schwer verständlich. Ich bin nichtmal sicher ob ich die Problematik richtig verstehe

Ich wollte nur kurz Absichern, ob folgende Methode korrekterweise auf die Ganzzahligkeit (Keine Nachkomma-Stellen) eine Wurzel aus einer natürlichen Zahl überprüft:
 
Nein ich überprüfe einmal den double-Wert und dann den double Wert GECASTET zu einem int-Wert

Wenn der double-Wert ganzzahlig war, müssten beide gleich sein,
Wenn nicht, müsste der double-Wert größer (Nachkommastellen) sein und beides ungleich sein.

Ich will wissen ob die Wurzel einer Zahl ganzzahlig ist.

Beispielsweise Wurzel aus 5 -> Nicht ganzzahlig
Wurzel aus 4 -> Ganzzahling

5 und 4 sind jeweils durch in dargestellt
 

Zurück
Oben