Provide scale for precision instead of significant digits

### What am I?

The general expectation we had was that precision was decimal precision or scale. It is not the way this service was implemented. Instead it is the actual definition of precision which is just the total number of digits we want real numbers for. Please see below examples.

what we were doing was keeping 2 significant digits which is not the same
as keeping decimal precision.
From http://mathjs.org/docs/reference/functions/format.html
```
Old Code: math.format(21385, 2);                       // returns '21000'
New Code: math.format(2.3, {notation: 'fixed', precision: 2});  // returns '2.30'
```

What this does is moves precision to apply to the scale of the number which is what we are looking for for math evaluations.

precision by itself will not have an effect. Instead we will have to pass the notation `fixed` as well to the evaluator to see the number 1 with scale 10 like 1.0000000000
More variable hoisting to the top of function declaration.