big steppy
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 

78 Zeilen
2.5 KiB

  1. function round(number,precision=3) {
  2. return Math.round(number*Math.pow(10,precision)) / Math.pow(10,precision);
  3. }
  4. function mass(kg, metric=true, singular=false) {
  5. return metric ? metricMass(kg, singular) : customaryMass(kg, singular);
  6. }
  7. function length(m, metric=true, singular=false) {
  8. return metric ? metricLength(m, singular) : customaryLength(m, singular);
  9. }
  10. function metricMass(kg, singular=false) {
  11. if (kg < 1) {
  12. var mass = round(kg * 1000,0);
  13. return mass + (singular || mass == 1 ? " gram" : " grams");
  14. } else if (kg < 5000,0) {
  15. var mass = round(kg);
  16. return mass + (singular || mass == 1 ? " kilogram" : " kilograms");
  17. } else if (kg < 5000000) {
  18. var mass = round(kg / 1000,1);
  19. return mass + (singular || mass == 1 ? " metric ton" : " metric tons");
  20. } else if (kg < 5000000000) {
  21. var mass = round(kg / 1000000,1);
  22. return mass + (singular || mass == 1 ? " kiloton" : " kilotons");
  23. } else if (kg < 5000000000000) {
  24. var mass = round(kg / 1000000000,1);
  25. return mass + (singular || mass == 1 ? " megaton" : " megatons");
  26. } else {
  27. var mass = round(kg / 1000000000000,1);
  28. return mass + (singular || mass == 1 ? " gigaton" : " gigatons");
  29. }
  30. }
  31. function customaryMass(kg, singular=false) {
  32. var lbs = kg * 2.2;
  33. if (lbs < 1) {
  34. var mass = round(lbs * 16,0);
  35. return mass + (singular || mass == 1 ? " ounce" : " ounces");
  36. } else if (lbs < 2000) {
  37. var mass = round(lbs,0);
  38. return mass + (singular || mass == 1 ? " pound" : " pounds");
  39. } else {
  40. var mass = round(lbs / 2000,1);
  41. return mass + (singular || mass == 1 ? "ton" : " tons");
  42. }
  43. }
  44. function metricLength(m, singular=false) {
  45. if (m < 1) {
  46. var length = round(m * 100,0);
  47. return length + (singular || length == 1 ? " centimeter" : " centimeters");
  48. } else if (m < 500) {
  49. var length = round(m,2);
  50. return length + (singular || length == 1 ? " meter" : " meters");
  51. } else {
  52. var length = round(m / 1000,1);
  53. return length + (singular || length == 1 ? " kilometer" : " kilometers");
  54. }
  55. }
  56. function customaryLength(m, singular=false) {
  57. var ft = m * 3.28084;
  58. if (ft < 1) {
  59. var length = round(ft * 12,0);
  60. return length + (singular || length == 1 ? " inch" : " inches");
  61. } else if (ft < 5280) {
  62. var end = customaryLength((ft - Math.floor(ft))/3.28084, singular);
  63. var length = Math.floor(ft);
  64. return length + (singular || length == 1 ? " foot" : " feet") + " " + end;
  65. } else {
  66. var length = round(ft/5280,1);
  67. return length + (singular || length == 1 ? " mile" : " miles");
  68. }
  69. }