float()
float(valor)
Quando você divide dois inteiros no Arduino, o resultado vem cortado (sem decimais). O float() resolve isso: ele transforma um valor em número de ponto flutuante, pra você trabalhar com casas decimais de verdade.
Sintaxe
float(valor);
Parâmetros
- valor: o número que você quer converter para
float.
Retorno
O valor convertido para float (ponto flutuante de 32 bits, com cerca de 6-7 dígitos de precisão).
Exemplo
void setup() {
Serial.begin(9600);
int total = 7;
int partes = 2;
// sem float, 7/2 daria 3; com float dá 3.50
float media = float(total) / partes;
Serial.println(media); // 3.50
}
void loop() {
}
Notas e cuidados
- Para uma divisão sair com decimais, pelo menos um dos lados precisa ser
float— por isso convertemos ototalno exemplo. floatguarda aproximações: valores como0.1não são exatos. Nunca use==pra comparar dois floats.- O ATmega do Uno não tem unidade de ponto flutuante, então contas com
floatsão mais lentas — use com parcimônia em loops rápidos.