Resultat bizare

Bonjour,
Est-ce que quelqu'un aurait une explication sur cette bizarrerie :

unsigned long ChangeEnMillis = 0;
byte Change = 3;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  ChangeEnMillis = (Change * 60) * 1000;
  Serial.println(ChangeEnMillis);
}

void loop() {
  // put your main code here, to run repeatedly:

}

J'obtiens : "4294950688" au lieu de "180000"

Merci de m'éclairer, je galère depuis un bon moment avec ca...

Il faut "caster" vers le bon type... (en mettant 60 en long int par exemple)

ChangeEnMillis = (Change * 60L) * 1000;

ps: le plus élégant quand même serait : ((unsigned long) Change * 60) * 1000;

Merci, j'avoue ne pas y avoir pensé une seconde et je confirme ça marche évidemment...

...mais on y pense la "seconde" fois :slight_smile: