Petit problème de conversion en int16_t

Bonjour.

J'ai un petit problème de stockage de donnée.

Je mesure une sonde qui me retourne la valeur: 887.8934 (float) Je veux conserver les deux chiffre après la virgule 887.8934 * 100 = 88789.34 et pour supprimer le reste je le converti en int16_t

sunValueWm2=88789.34;
int16_t sunVal;
sunVal = (int16_t)sunValueWm2
Serial.print(sunVal);

thériquement, sunVal devrait m'affocher: 88789 mais il m'affiche 23253!!!

Est-ce que 88789 est trop grand pour etre contenu dans un int16_t????

Oui, c'est trop grand. Un int16_t va de _32768 à 32767