I am not aware of any problems with ROBOTC's "number precision". I just tried the following test program and examined the output in the debugger window to confirm this.
There may be a bug in ROBOTC's expression calculation / compiler. BUt I suspect what you've encountered is a simplification that ROBOTC does in the debugger display of float numbers. For very small numbers in the range 0.000001 to 0.001 it will display as zero rather than in "scientific notation". The rationale behind this was to limit display precision to four or five decimal digits and avoid having to explain scientific notation to novices.
If you run the above program and look at the results in the debugger window, you'll see the display for "fTestSmall" as values:
. . .
If you use the "nxtDisplayTextLine( xx, "%f", variable):" to display a value on the NXT LCD you'll see that the internal results are what's expected. Or you can use the Debugger "Hexadecimal display" to get the variables displayed in hex.
If you still think there are errors in calculations, then please post again.