|  | function round(number,precision=3) {
  return Math.round(number*Math.pow(10,precision)) / Math.pow(10,precision);
}
function mass(kg, metric=true, singular=false) {
  return metric ? metricMass(kg, singular) : customaryMass(kg, singular);
}
function length(m, metric=true, singular=false) {
  return metric ? metricLength(m, singular) : customaryLength(m, singular);
}
function metricMass(kg, singular=false) {
  if (kg < 1) {
    var mass = round(kg * 1000,0);
    return mass + (singular || mass == 1 ? " gram" : " grams");
  } else if (kg < 5000,0) {
    var mass = round(kg);
    return mass + (singular || mass == 1 ? " kilogram" : " kilograms");
  } else if (kg < 5000000) {
    var mass = round(kg / 1000,1);
    return mass + (singular || mass == 1 ? " metric ton" : " metric tons");
  } else if (kg < 5000000000) {
    var mass = round(kg / 1000000,1);
    return mass + (singular || mass == 1 ? " kiloton" : " kilotons");
  } else if (kg < 5000000000000) {
    var mass = round(kg / 1000000000,1);
    return mass + (singular || mass == 1 ? " megaton" : " megatons");
  } else {
    var mass = round(kg / 1000000000000,1);
    return mass + (singular || mass == 1 ? " gigaton" : " gigatons");
  }
}
function customaryMass(kg, singular=false) {
  var lbs = kg * 2.2;
  if (lbs < 1) {
    var mass = round(lbs * 16,0);
    return mass + (singular || mass == 1 ? " ounce" : " ounces");
  } else if (lbs < 2000) {
    var mass = round(lbs,0);
    return mass + (singular || mass == 1 ? " pound" : " pounds");
  } else {
    var mass = round(lbs / 2000,1);
    return mass + (singular || mass == 1 ? "ton" : " tons");
  }
}
function metricLength(m, singular=false) {
  if (m < 1) {
    var length = round(m * 100,0);
    return length + (singular || length == 1 ? " centimeter" : " centimeters");
  } else if (m < 500) {
    var length = round(m,2);
    return length + (singular || length == 1 ? " meter" : " meters");
  } else {
    var length = round(m / 1000,1);
    return length + (singular || length == 1 ? " kilometer" : " kilometers");
  }
}
function customaryLength(m, singular=false) {
  var ft = m * 3.28084;
  if (ft < 1) {
    var length = round(ft * 12,0);
    return length + (singular || length == 1 ? " inch" : " inches");
  } else if (ft < 5280) {
    var end = customaryLength((ft - Math.floor(ft))/3.28084, singular);
    var length = Math.floor(ft);
    return length + (singular || length == 1 ? " foot" : " feet") + " " + end;
  } else {
    var length = round(ft/5280,1);
    return length + (singular || length == 1 ? " mile" : " miles");
  }
}
 |