Skip to content

Latest commit

 

History

History
68 lines (52 loc) · 2.57 KB

File metadata and controls

68 lines (52 loc) · 2.57 KB
title categories subCategories
float
Variables
Data Types

float

Descrizione

Tipo di dato per i numeri in virgola mobile, un numero che ha un punto decimale. I numeri in virgola mobile sono spesso utilizzati per approssimare valori analogici e continui, perché hanno una risoluzione maggiore rispetto ai numeri interi. I numeri in virgola mobile possono essere grandi fino a 3.4028235E+38 e piccoli fino a -3.4028235E+38. Vengono memorizzati in 32 bit (4 byte) di informazioni.

I float dispongono di una precisione di sole 6-7 cifre decimali. Per precisione si intende il numero totale di cifre, non il numero a destra del punto decimale. A differenza di altre piattaforme, dove è possibile ottenere una maggiore precisione utilizzando una variabile di tipo double (ad esempio fino a 15 cifre), su Arduino il double ha le stesse dimensioni del float.

I numeri in virgola mobile non sono esatti e possono dare risultati anomali quando vengono confrontati. Per esempio 6.0 / 3.0 potrebbe non essere uguale a 2.0. Si dovrebbe invece verificare che il valore assoluto della differenza tra i numeri sia inferiore a un numero piccolo.

La matematica in virgola mobile è anche molto più lenta della matematica intera nell’esecuzione dei calcoli, quindi dovrebbe essere evitata se, per esempio, è necessario eseguire un ciclo alla massima velocità per una funzione in cui le tempistiche sono critiche. I programmatori spesso si sforzano di convertire i calcoli in virgola mobile in calcoli interi per aumentarne la velocità.

Se si eseguono calcoli in virgola mobile, è necessario aggiungere un punto decimale, altrimenti verranno trattati come int. Per maggiori dettagli, consultare il Virgola mobile.

Sintassi

float var=val;

var - il nome della variabile float val - il valore assegnato alla variabile

Codice di esempio

  float myfloat;
  float sensorCalbrate = 1.117;
  int x;
  int y;
  float z;
  x = 1;
  y = x / 2;            // y ora contiene 0, gli int non possono contenere frazioni
  z = (float)x / 2.0;   // z now contains .5 (si deve usare 2.0, non 2)

Vedi anche