il quadrato perde i decimali

Ieri sera mi sono incaponito su un codice banale ma che non riesco a far funzionare.
Mettendo su Arduino questo banale programmino:

float x = 0;
float y = 0;

void setup(){
Serial.begin(38400);
}


void loop(){
  for (x=-10; x<10; x++)
  {
  y=sqrt(100-x*x);
  Serial.print(y);
  Serial.print("  ");
  Serial.println(y*y);
  }
  
}

il risultato è questo:

4.36  19.00
6.00  36.00
7.14  51.00
8.00  64.00
8.66  75.00
9.17  84.00
9.54  91.00
9.80  96.00
9.95  99.00
10.00  100.00
9.95  99.00
9.80  96.00
9.54  91.00
9.17  84.00
8.66  75.00
8.00  64.00
7.14  51.00
6.00  36.00
4.36  19.00

Ma dove sono i decimali del quadrato??? Possibile che 4.36*4.36 faccia 19.00 ???
Eppure ho messo tutti float. Cosa sbaglio??

La serial.print di default stampa solo due decimali, devi dirgli tu quanti ne vuoi in questo modo "Serial.println(y*y,4);", il valore dopo la virgola indica quanti decimali desideri.

4.36*4.36 = 19.0096

Hai proprio ragione. Il risultato è corretto, la visualizzazione dei decimali mi ha ingannato. Grazie.