Che non si possa effettuare un test fra float e boolean è vero: che senso ha confrontare mele con pere?

Non credo che il compilatore ti abbia detto che non puoi effettuare il test fra valori float perchè NON E' VERO. L'errore sarà sicuramente un altro. Postalo.

Inoltre, ho notato che nel codice che hai postato, all'interno dell'istruzione if hai messo un'assegnazione (=) al posto di un confronto (==).

Questo codice, per esempio, funziona perfettamente:
codice:
float a = 0.5f;
float b = 0.5f;

if (a==b) System.out.println("Sono uguali");
else System.out.println("Sono diversi");
E restituisce correttamente la stringa "Sono uguali".

Una cosa: perchè hai dato come valore di restituzione del metodo isQuatrato() un float al posto di un boolean? Semanticamente un metodo simile restituirebbe true o false, semplificando il codice implementato al suo interno.

Può darsi, oltretutto, che il compilatore ti dica "Possble loss of precision" in corrispondenza del return (1) e return (0) perchè non hai messo la "f" di float.

Ciao.