Another alternative is to force users to use floating-point (it's better/more appropriate anyways)
a
Another alternative is to force users to use floating-point (it's better/more appropriate anyways) and provide some specialized functions for creating a