exakt, C rechnet immer nur mit der minimal notwendigen Genauigkeit, das ist bei reinen Int Zahlen eben reine Int Arithmetik.
Nur wenn verschiedene Datentypen in derselben Kalkulation auftauchen, wird automatisch auf die "höhere" gecastet.
100 ist Int, während 100.0 fp ist.

Also ist 17/100 per Int-Arithmetik 0 (Null) , während 17/100.0 automatisch auf fp gecastet wird, also als Ergebnis 0.17 ergibt.
Oder man muss explizit casten:
(float)17 / (float)100 = 0.17

Und davon ab, auf dem Arduino Micro ist double auch gar kein double sondern nur float.