Template:Order of magnitude/doc

Usage
This template calculates the (decimal) order of magnitude of numbers within the ranges 10300 to 10−300 and −10−300 to −10300.

The acceptable input and the output produced are optimised for use in other templates.
 * The hyphen (not a true minus sign) is used for negative numbers.
 * No separator is used for thousands.
 * The template gives 0 for 0. Although, strictly speaking, this is mathematically incorrect it has been designed this way so as to be more useful in other templates.  An important example of this is that when used by convert 0 °C or 0 °F is considered to be on the same order of magnitude as ±1 °C or ±1 °F respectively.

Incorrect usage
The input must be an unformatted number, or the template will emit errors:
 * → Expression error: Unexpected = operator
 * → Expression error: Unrecognised punctuation character ","
 * → Expression error: Unrecognised word "foo"

Technical points
This template calculates the order of magnitude of a number, using the natural logarithm of the absolute value of the number, divided by the log of 10. The amount is adjusted for truncation error in the digital format, and the floor number of the results is used. The magnitude of fractions, such as 0+1/1000 (-3), will also be calculated. The code uses four expansion-depth levels.