I don\'t know if I\'m missing something obvious here but...
In IE, Opera and Chrome, I get what I expect from rounding numbers ending in a 5:
125 toP
About "I want 0.0001235 to round up to 0.000124": This does not make much sense since unlike 0.5, 1.5, 2.5, etc., the decimal number 0.0001235 isn't exactly representable in radix 2; so its rounding may be a little above (A) or a little below (B) the exact value, where (A) and (B) would yield different roundings: 0.000124 for (A), 0.000123 for (B).
Even if you get a fractional number such as 1.5 to be rounded to an integer after some computations, (1.5).toPrecision(2) will not necessarily yield the value that is the closest to the exact value. The reason is that the exact value may be just below 1.5, in which case the correct rounding is 1, not 2. This problem is known as the Table Maker's Dilemma.
This also means that if two students use slightly different methods (both rather accurate) and round their approximations, they will get different rounded results (even though their approximations could be very close to each other). In case of a tie such as 0.0001235 (to be rounded to 0.000124), the Table Maker's Dilemma is unavoidable unless all computations are carried out exactly or the algorithm specifically checks tie cases.
However if the exact result is a tie or very close to a tie, it is still possible to check whether the student has answered either (A) or (B).