convert Number Function

by ShaCP

JavaScript

function indexOfFromLast(substring) {
  var string = this;
  var stringLength = string.length;
  var indexOfSubstring = string.indexOf(substring);
  var substringFound = indexOfSubstring !== -1;
  var indexFromLast = substringFound ? stringLength - indexOfSubstring - 1 : -1;
  return indexFromLast;
}


function myConvert(number, decimalPlaces, right) {
  var originalNumber = number;
  var cleanedUpNumber = Number(number);

  var isValidNumber = typeof number === "number" && !isNaN(number);
  if (!isValidNumber) {
    throw Error("Invalid 'number' argument. Must be a number or a string containing only a number.");
  }

  var isValidDecimalPlaces = decimalPlaces === undefined ? true : Number.isInteger(decimalPlaces);

  if (!isValidDecimalPlaces) {
    throw Error("Invalid 'decimalPlaces' argument. Must be an integer.");
  }

  var result = {
    number,
    decimalPlaces: decimalPlaces
  };

  if (decimalPlaces === 0) {
    return result;
  }


  var isDecimal = !Number.isInteger(number);
  var decimalPlacesSpecified = decimalPlaces !== undefined;

  if (!isDecimal && !decimalPlacesSpecified) {
    result.decimalPlaces = 0;
    return result;
  }

  var finalNumber;
  var numberString = `${cleanedUpNumber}`;
  var indexOfDecimalPoint;
  var numberStringWithoutDecimalPoint;
  var originalNumberDecimalPlaces = 0;
  var numberStringWithoutDecimalPoint;
  var decimalPlacesToMoveBy = decimalPlaces;
  var numbersAfterDecimalPoint = 0;
  var numbersBeforeDecimalPoint = 0;
  var zeroesToAdd;
  var zeroesToAddString = "";
  if (isDecimal) {



    indexOfDecimalPoint = numberString.indexOf(".");
    numbersBeforeDecimalPoint = indexOfDecimalPoint;
    numbersAfterDecimalPoint = numberString.length - numbersBeforeDecimalPoint - 1;
    numberString = `${numberString.slice(0, indexOfDecimalPoint)}${numberString.slice(indexOfDecimalPoint + 1)}`;

    cleanedUpNumber = cleanedUpNumber.slice(0, numbersBeforeDecimalPoint);
    /* originalNumberDecimalPlaces = numberString.length...