Comment pouvoir arrondir un float ?

Bonjour,
Je bosse sur un projet de boitier qui affiche une direction en fonction de la température (pas encore fini mais voilà le contexte)
En gros le problème c'est que j'aimerais arrondir les températures (en gros quand j'essaye ça m'affiche 24,71 au lieu de 25° pile) comment je pourrais faire ?
Merci d'avance
(Le code)

/*
Ce programme met en oeuvre un montage de type "flash" de 4 LED
*/

#define led1 2 // led1 branchée sur la broche 2
#define led2 3 // led2 branchée sur la broche 3
#define led3 4 // led3 branchée sur la broche 4
#define led4 5 // led4 branchée sur la broche 5
#define led5 6 // led5 branchée sur la broche 6
int capteur_temp = 0;
bool etat;
float temperature_max = 120;

void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(led1, OUTPUT); // la broche led1 (2) est initialisée en sortie
pinMode(led2, OUTPUT); // la broche led2 (3) est initialisée en sortie
pinMode(led3, OUTPUT); // la broche led3 (4) est initialisée en sortie
pinMode(led4, OUTPUT); // la broche led4 (5) est initialisée en sortie
pinMode(led5, OUTPUT);
Serial.begin(9600);
}
void loop() // loop est déroulé indéfiniment
{
delay(250);
digitalWrite(led1, HIGH); // allume la LED1
digitalWrite(led2, HIGH); // allume la LED2
digitalWrite(led3, HIGH); // allume la LED3
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
delay(100); // attente de 1/10 seconde
digitalWrite(led1, LOW); // éteint la LED1
digitalWrite(led2, LOW); // éteint la LED2
digitalWrite(led3, LOW); // éteint la LED3
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
delay(500); // attente de 1/2 seconde

// Lecture de l'entrée analogique
int reading = analogRead(capteur_temp);

// Conversion de la lecture d'entrée en tension
float volt = reading * 5.0;
volt = volt / 1024.0;

// Afficher la tension d'entrée
Serial.print(volt); Serial.println(" volts");

//Afficher la température
float temperature = (volt - 0.5) * 100; // Convertir la tension en temperature

Serial.print(temperature);
Serial.println(" degrees C");
delay (500);
}

Salut,
Tu as 2 fonctions de base pour ça :

int nb = ceil(26.152);   // ceil : renvoie le premier nombre entier après le nombre décimal qu'on lui donne ; nb = 27
int nb = floor(26.152);  // floor : renvoie le nombre directement en dessous du nombre décimal qu'on lui donne ; nb = 26

// du coup tu crées un "int degre" par exemple qui vaut:
int degre = ceil(temperature);

si c'est juste à l'affichage,

Serial.print(temperature, 0); // 0 chiffre après la virgule

———— SVP ————
corrigez votre post précédent et rajoutez les balises de code autour du code:
[code]`` [color=blue]// votre code ici[/color] ``[/code].

ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement)

(lisez les messages épinglés en haut du forum)

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.