fix niceNumber on numbers < 1e-8

niceNumbers used to round numbers off to 10 dp, which is bad when they're smaller than that!
Now, numbers less than 1e-8 just get cast to strings, since JavaScript puts them in scientific notation for us.