Yes. As MirekCz said above, use "Fixed Point" maths.
I put a link to an ARM document about fixed point in the 3d thread earlier today (it's around elsewhere apparently but I didn't look for it):
Read the proviso(s) in that thread too, you need to work out what kind of accuracy you need, and methods of retaining it in your system - using fixed point is fast, but it doesn't come without a bit of extra calculation
In your example, you need to have *at least* enough accuracy in your fixed-point system to represent 0.001..ish, which means you want *at least* 10 bits of "decimal" (1/2^10 = 1/1024) to get *close* (0.0009765625) by my (hasty) calculations.
So, then, you'd say that:
0.001 is about 1/1024
So, in (binary) fixed point, 1/1024 =
0.0000000001
So, you multiply your (fixed point) number by that and shift it back to where it should be, and you have your result * "0.001"(ish).
Let me know if you want any more information, examples, etc, and I'll do some when I get bored at work tomorrow.
Cheers,
Refractor