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...