|
|
|
@@ -198,21 +198,39 @@ function customaryMass(kg, singular=false) { |
|
|
|
} |
|
|
|
|
|
|
|
function approxMass(kg, singular=false) { |
|
|
|
if (kg < 10000) { |
|
|
|
if (kg < 4500) { |
|
|
|
let mass = round(kg/1000,2); |
|
|
|
return (singular || mass == 1 ? "a car" : mass + " cars"); |
|
|
|
} else if (kg < 100000) { |
|
|
|
} else if (kg < 54431) { |
|
|
|
let mass = round(kg/6000,2); |
|
|
|
return (singular || mass == 1 ? "an elephant" : mass + " elephants"); |
|
|
|
} else if (kg < 1000000000) { |
|
|
|
//this unit almos never gets used and is mostly redundant, perhaps remove it if units are cleaned up |
|
|
|
} else if (kg < 10000000) { |
|
|
|
let mass = round(kg/54431.1,2); |
|
|
|
return (singular || mass == 1 ? "a tank" : mass + " tanks"); |
|
|
|
} else if (kg < 1e21) { |
|
|
|
let mass = round(kg/1.01605e8,2); |
|
|
|
} else if (kg < 5.2e10) { |
|
|
|
let mass = round(kg/9.7e7,2); |
|
|
|
return (singular || mass == 1 ? "an aircraft carrier" : mass + " aircraft carriers"); |
|
|
|
} else { |
|
|
|
} else if (kg < 1.5e13) { |
|
|
|
let mass = round(kg/5.2e10,2); |
|
|
|
return (singular || mass == 1 ? "the Great Wall of China" : mass + " Great Wall Of Chinas"); |
|
|
|
} else if (kg < 5e21) { |
|
|
|
let mass = round(kg/1.5373768e15,3); |
|
|
|
return (singular || mass == 1 ? "New York City" : mass + " New York Cities"); |
|
|
|
//this figure includes a lot of underlying bedrock, just the city itself is 1.13587210581190e11 but I needed a good figure to fit in this spot |
|
|
|
} else if (kg < 6e23) { |
|
|
|
let mass = round(kg/4.6121304e20,3); |
|
|
|
return (singular || mass == 1 ? "Australia" : mass + " Australias"); |
|
|
|
//this is a napkin math number based on the land area of Australia, 25km of height and rough desnity or rock |
|
|
|
} else if (kg < 2e27) { |
|
|
|
let mass = round(kg/5.972e24,4); |
|
|
|
return (singular || mass == 1 ? "the Earth" : mass + " Earths"); |
|
|
|
return (singular || mass == 1 ? "the Earth" : mass + " Earths"); |
|
|
|
} else if (kg < 1.4e39) { |
|
|
|
let mass = round(kg/1.989e30,4); |
|
|
|
return (singular || mass == 1 ? "the Sun" : mass + " Suns"); |
|
|
|
} else { |
|
|
|
let mass = round(kg/1.3923e42,4); |
|
|
|
return (singular || mass == 1 ? "the Milky Way" : mass + " Milky Ways"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@@ -249,23 +267,29 @@ function customaryLength(m, singular=false) { |
|
|
|
} |
|
|
|
|
|
|
|
function approxLength(m, singular=false) { |
|
|
|
if (m < 1000) { |
|
|
|
if (m < 30) { |
|
|
|
let length = round(m/1.905,1); |
|
|
|
return length + (singular || length == 1 ? " bed" : " beds"); |
|
|
|
} else if (m < 350) { |
|
|
|
let length = round(m/49,1); |
|
|
|
return length + (singular || length == 1 ? " football field" : " football fields"); |
|
|
|
} else if (m < 5000000) { |
|
|
|
} else if (m < 20000) { |
|
|
|
let length = round(m/449,1); |
|
|
|
return length + (singular || length == 1 ? " Empire State Building" : " Empire State Buildings"); |
|
|
|
} else if (m < 2000000) { |
|
|
|
let length = round(m/80467.2,1); |
|
|
|
return length + (singular || length == 1 ? " Panama Canal" : " Panama Canals"); |
|
|
|
} else if (m < 3474574*2) { |
|
|
|
let length = round(m/3474574,1); |
|
|
|
return length + (singular || length == 1 ? " moon" : " moons"); |
|
|
|
} else if (m < 12.742e6*100) { |
|
|
|
let length = round(m/12.742e6,1); |
|
|
|
} else if (m < 12.742e6*130) { |
|
|
|
let length = round(m/12.742e6,2); |
|
|
|
return length + (singular || length == 1 ? " earth" : " earths"); |
|
|
|
} else if (m < 149.6e12) { |
|
|
|
let length = round(m/149.6e9,1); |
|
|
|
let length = round(m/149.6e9,3); |
|
|
|
return length + (singular || length == 1 ? " AU" : " AUs"); |
|
|
|
} else if (m < 9.4607e22) { |
|
|
|
let length = round(m/9.4607e15,4); |
|
|
|
let length = round(m/9.4607e15,3); |
|
|
|
return length + (singular || length == 1 ? " light year" : " light years"); |
|
|
|
} else if (m < 5e26) { |
|
|
|
let length = round(m/9.4607e21,3); |
|
|
|
@@ -347,23 +371,32 @@ function customaryVolume(m3, singular=false) { |
|
|
|
} |
|
|
|
|
|
|
|
function approxVolume(m3, singular=false) { |
|
|
|
if (m3 < 1/10000) { |
|
|
|
let volume = round(m3*1e6,0); |
|
|
|
if (m3 < 2/10000) { |
|
|
|
let volume = round(m3*4e5,0); |
|
|
|
return (singular || volume == 1 ? "a shot" : volume + " shots"); |
|
|
|
} else if (m3 < 1) { |
|
|
|
let volume = round(m3*2000,0); |
|
|
|
} else if (m3 < .1) { |
|
|
|
let volume = round(m3*2254,1); |
|
|
|
return (singular || volume == 1 ? "a glass" : volume + " glasses"); |
|
|
|
} else if (m3 < 10) { |
|
|
|
} else if (m3 < 100) { |
|
|
|
let volume = round(m3*2.64,1); |
|
|
|
return(singular || volume == 1 ? "a bathtub" : volume + " bathtubs"); |
|
|
|
} else if (m3 < 1e9) { |
|
|
|
} else if (m3 < 1e5) { |
|
|
|
let volume = round(m3/1000,2); |
|
|
|
return (singular || volume == 1 ? "an Olympic swimming pool" : volume + " Olympic swimming pools"); |
|
|
|
return (singular || volume == 1 ? "an Olympic swimming pool" : volume + " Olympic swimming pools"); |
|
|
|
} else if (m3 < 1e9) { |
|
|
|
let volume = round(m3/3.2e5,2); |
|
|
|
return (singular || volume == 1 ? "an oil tanker" : volume + " oil tankers"); |
|
|
|
} else if (m3 < 1e15) { |
|
|
|
let volume = round(m3/1.8919e10,3); |
|
|
|
return (singular || volume == 1 ? "a Great Salt Lake" : volume + " Great Salt Lakes"); |
|
|
|
} else if (m3 < 1e20){ |
|
|
|
let volume = round(m3/3.547e17, 3); |
|
|
|
return (singular || volume == 1 ? "an ocean" : volume + " oceans"); |
|
|
|
} else if (m3 < 1e25){ |
|
|
|
let volume = round(m3/1e21, 3); |
|
|
|
return (singular || volume == 1 ? "Earth's volume" : volume + " Earths"); |
|
|
|
} else { |
|
|
|
let volume = round(m3/3.547e17, 3); |
|
|
|
return (singular || volume == 1 ? "an ocean" : volume + " oceans"); |
|
|
|
let volume = round(m3/1.4e27, 3); |
|
|
|
return (singular || volume == 1 ? "Sun's volume" : volume + " Suns"); |
|
|
|
} |
|
|
|
} |