First one because we compare ascii value (an Integer) to $- (the Character)...
2nd one same for +
Third one because we decide to do nothing when exponent = 1
4th and 5th are variations of 1st and 2nd
Moreover, the conversions are subject to double rounding problem (it main chain up to 3 inexact operations), it will thus fail to answer the nearest Float to some json string. This is bad, ECMA script does not make such mistake.