Once more, this is _exactly_ why Ada has arbitrary precision decimal arithmetic. One merely needs to specify
type Result is range -100 .. 100 delta 0.0001;
and the compiler will figure out how to give you fast math with only the accuracy and resolution that you need!