var number = '1e3003' // number only works for numbers less than 1e309 anything past that must be a string
var fnum, Coef, capE, Expn2, Expn3
var Expn2 = 0, SetV = -1
var MultiNum = ""

console.log("Original Number: " + number)

// Number limit raised : 9e308 -> 1e9E308

function Eshort() {
    sepE()
    Expn = Number(Expn)
    Expn3 = Expn
    if (Expn >= 1000) {
        while (Expn >= 10) {
            Expn /= 10
            Expn2 += 1
        }
    }
    Expn = (Math.floor(100 * Number(Expn))) / 100
    if (Expn2 > 0) {
        console.log(Coef + "e" + Expn + "E" + Expn2)       
    } else {
        console.log(Coef + "e" + Expn)
    }
} 

function sepE() {
    [Coef, Expn] = number.toLowerCase().split('e');
}

if (typeof(number) == "number") {
    short() 
} else if (typeof(number) == "string") {
    Eshort()
} else {
    console.log("More soon, use a number or string")
}

// each set increases by X*1e3
var Sets = ["k", "M", "B"]; 
var FirstOnes = ["", "U", "D", "T", "Qd", "Qn", "Sx", "Sp", "Oc", "No"]; 
var SecondOnes = ["", "De", "Vt", "Tg", "qg", "Qg", "sg", "Sg", "Og", "Ng"];
var ThirdOnes = ["", "Ce", "Du", "Tr", "Qa", "Qi", "Se", "Si", "Ot", "Ni"];
var MultOnes = [ 
    "", "Mi","Mc","Na","Pi","Fm","At","Zp","Yc", "Xo", "Ve", "Me", 
	"Due", "Tre", "Te", "Pt", "He", "Hp", "Oct", "En", "Ic", "Mei", 
	"Dui", "Tri", "Teti", "Pti", "Hei", "Hp", "Oci", "Eni", "Tra","TeC",
	"MTc","DTc","TrTc","TeTc","PeTc","HTc","HpT","OcT","EnT","TetC","MTetc",
	"DTetc","TrTetc","TeTetc","PeTetc","HTetc","HpTetc","OcTetc","EnTetc","PcT",
	"MPcT","DPcT","TPCt","TePCt","PePCt","HePCt","HpPct","OcPct","EnPct","HCt",
	"MHcT","DHcT","THCt","TeHCt","PeHCt","HeHCt","HpHct","OcHct","EnHct","HpCt",
	"MHpcT","DHpcT","THpCt","TeHpCt","PeHpCt","HeHpCt","HpHpct","OcHpct","EnHpct",
	"OCt","MOcT","DOcT","TOCt","TeOCt","PeOCt","HeOCt","HpOct","OcOct","EnOct","Ent","MEnT",
	"DEnT","TEnt","TeEnt","PeEnt","HeEnt","HpEnt","OcEnt","EnEnt","Hect", "MeHect"
]; 

var SetsW = ["Thousand", "Million", "Billion"]; 
var FirstOnesW = ["", "", "", "Trillion", "Quadrillion", "Quintillion", "Sextillion", "Septillion", "Octillion", "Nonillion"]; 
var SecondOnesW = ["", "Decillion", "Vigintillion", "Trigintillion", "Quagintillion", "Quingintillion", "Sexgintillion", "Septgintillion", "Octogintillion", "Nonagintillion"];
var ThirdOnesW = ["", "Centillion", "Duecentillion", "Trecentillion", "Quadringentillion", "Quingentillion", "Sescentillion", "Septingentillion", "Octingentillion", "Nongentillion"];
var MultOnesW = [ 
    "", "Millillion", "Micrillion", "Nanillion", "Picillion", "Femtillion", "Attillion", "Zeptillion", "Yoctillion", "Xonillion",   "Vecillion", "Mecillion",
	"Duecillion", "Trecillion", "Tetrecillion", "Pentecillion", "Hexacillion", "Heptecillion", "Octecillion", "Ennecillion", "Icosillion", "Meicosillion", 
	"Dueicosillion", "Trioicosillion", "Tetreicosillion", "Penteicosillion", "Hexaicosillion", "Heptaicosillion", "Octeicosillion", "Enneicosillion", "Triacontillion","UNKNOWN",
	"Metriacontillion","Duetriacontillion","Triotriacontillion","Tetretriacontillion","Pentetriacontillion,","Hexaconatillion","Heptaconatillion","Octeconatillion","Enneconatillion","Tetretriacontillion","Metetracontillion",
	"Duetetracontillion","Triotetracontillion","Tetretetracontillion","Pentetetracontillion","Hexetetracontillion","Heptetetracontillion","Octetetracontillion","Ennetetracontillion","Pentacontillion,",
	"Mepentacontillion","Duepentacontillion","Triopentacontillion","Tetrepentacontillion","Pentepentacontillion","Hexacontillion","Heptacontillion","Octacontillion","Ennacontillion","Hectillion",
	"Mehectillion","Duehectillion","Triohectillion","Tetrehectillion","Pentehectillion","Hexehectillion","Heptehectillion","Octehectillion","Ennehectillion","Icosehectillion",
	"Meicosehectillion","Dohectillion","Triahectillion","Tetrahectillion","Pentahectillion,","Hexahectillion","Heptahectillion","Octahectillion","Ennahectillion",
	"Zerillion ","Mezerillion","Duezerillion","Triozerillion","Tetrezerillion","Pentezerillion","Hexezerillion","Heptazerillion","Octezerillion","Ennezerillion","Megillion","Meimegillion",
	"Domagillion","Triamegillion","Tetramegillion","Pentamegillion","Hexamegillion","Heptamegillion","Octamegillion","Ennamegillion","Gigillion", "Megigigillion"
]; 

var Set = [];

for (let i = 0; i < 5; i++) {
    Set[i] = false  
}

if (Expn3 < 3) {
    console.log("Number is to low to suffix")
} else if (Expn3 < 12) {
    Set[1] = true;
} else if (Expn3 < 30) {
    Set[2] = true
} else if (Expn3 < 303) {
    Set[3] = true 
} else if (Expn3 < 3003) {
    Set[4] = true
} else if (Expn3 >= 3003 && Expn3 < 1e303) {
    Set[5] = true
} else {
    console.log("Number is to big to suffix")
}

var SetV1 = 0, SetV2 = 0, SetV3 = 0, SetV4 = 0, SetV5 = 0;
var Coef_Final 

function SolveSet() {
    if (Set[5] == true) {
        while (Expn3 >= 3003) {
            Expn3 /= 1e3
            SetV4 += 1
        }
        for (let e = SetV4; e > 0; e--) {
            MultiNum += MultOnes[e]
        }
        Set3Loop()
        Set2Loop()
        Set1Loop()
        SetFor()
        Coef_Final = Math.floor(Coef * Math.pow(10, (Expn3)))
        console.log(Coef_Final + FirstOnes[SetV1] + SecondOnes[SetV2] + ThirdOnes[SetV3] + MultiNum);  
        console.log(Coef_Final + MultOnesW[SetV4] + ThirdOnesW[SetV3] + SecondOnesW[SetV2] + FirstOnesW[SetV1])
    } else if (Set[4] == true ) {
        Set3Loop()
        Set2Loop()
        Set1Loop()
        SetFor()
        Coef_Final = Math.floor(Coef * Math.pow(10, (Expn3)))
        console.log(Coef_Final + FirstOnes[SetV1] + SecondOnes[SetV2] + ThirdOnes[SetV3]);
        console.log(Coef_Final + ThirdOnesW[SetV3] + SecondOnesW[SetV2] + FirstOnesW[SetV1])
    } else if (Set[3] == true) {
        Set2Loop()
        Set1Loop()
        SetFor()
        Coef_Final = Math.floor(Coef * Math.pow(10, (Expn3)))
        console.log(Coef_Final + FirstOnes[SetV1] + SecondOnes[SetV2]);
        console.log(Coef_Final + SecondOnesW[SetV2] + FirstOnesW[SetV1])
    } else if (Set[2] == true) {
        Set1Loop()
        SetFor()
        Coef_Final = Math.floor(Coef * Math.pow(10, (Expn3)))
        console.log(Coef_Final + FirstOnesW[SetV1]);
     } else if (Set[1] = true) {
        Set1Loop()
        SetFor()
        Coef_Final = Math.floor(Coef * Math.pow(10, (Expn3)))
        console.log(Coef_Final + Sets[SetV1]);
        console.log(Coef_Final + SetsW[SetV1])
    } else {
    console.log("Unknown input")
    }
} 

SolveSet()

// In the way functions

function SetFor() {
    if (SetV > 0) {
        SetV1 += 1
    }
}

function Set1Loop() {
    while (Expn3 >= 3) {
        Expn3 -= 3
        SetV1 += 1
    }
}

function Set2Loop() {
    while (Expn3 >= 30) {
        Expn3 -= 30
        SetV2 += 1
    }
}

function Set3Loop() {
    while (Expn3 >= 303) {
        Expn3 -= 300
        SetV3 += 1
    }
}

clearTimeout()

/* ~~~ Referances ~~~

// temp

function round(num, rounder) {
    if (rounder == undefined) {
        rounder = 1
    }
    let p = Math.pow(10, rounder)
    num = (Math.floor(num * p) / p)
}

function short() {
    var eAmnt = Math.floor(Math.log10(number))
    var i = number
    while (i => 10) {
        i /= 10;
        if (i < 10) {
            break
        }
    }
    let i2 = (Math.floor(i * 100) / 100)
    var Fnum = (i2 + "e" + eAmnt);
    console.log(Fnum)
}

for (var i = 0; i < 5; i++) {
   console.log("Iteration " + i);
}
//number = number.toString();
str.split('char') */ 

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: