Extend range of formatNumber(), fix handling of zero