function float(replacement, conversion) {
    var replacementNumber = parseFloat(replacement);
    var formattedReplacement;

    if (isNaN(replacementNumber)) {
      replacementNumber = 0;
    }

    var precision = coerceToNumber(conversion.precision, 6);

    switch (conversion.typeSpecifier) {
      case TYPE_FLOAT:
        formattedReplacement = replacementNumber.toFixed(precision);
        break;

      case TYPE_FLOAT_SCIENTIFIC:
        formattedReplacement = replacementNumber.toExponential(precision);
        break;

      case TYPE_FLOAT_SCIENTIFIC_UPPERCASE:
        formattedReplacement = replacementNumber.toExponential(precision).toUpperCase();
        break;

      case TYPE_FLOAT_SHORT:
      case TYPE_FLOAT_SHORT_UPPERCASE:
        formattedReplacement = formatFloatAsShort(replacementNumber, precision, conversion);
        break;
    }

    formattedReplacement = addSignToFormattedNumber(replacementNumber, formattedReplacement, conversion);
    return coerceToString(formattedReplacement);
  }
Formats a float type according to specifiers.

@ignore
@param  {string} replacement The string to be formatted.
@param  {ConversionSpecification} conversion The conversion specification object.
@return {string} Returns the formatted string.