calcolatore del volume javascript da larghezza, lunghezza e profondità

Non sono strabiliante in matematica, devo ammettere 🙂

Essenzialmente ho bisogno di creare una calcolatrice che impieghi:

1. width 2. length 3. depth 

Da questi input, ho bisogno di visualizzare la risposta in m³.

Rendendolo un po ‘più complicato, un utente può scegliere tra 5 opzioni a discesa:

 1. Centimeter 2. Inches 3. Feett 4. Yards 5. Meters 

Ad esempio, un utente può fare qualcosa come:

 width = 10 centimeters length = 7 foot depth = 2 inches 

Quindi il mio pensiero era di convertire tutti gli input dell’utente in millimetri per renderli dello stesso tipo. La formula per trovare un volume è:

 length * height * width 

Quindi immagino che se lo faccio in millimetri, posso quindi riconvertirlo in metri. Tuttavia, sto incontrando problemi e non ricevo le risposte corrette dal mio codice. La logica deve essere completamente sbagliata (come ho detto che la mia matematica non è sorprendente)

Ecco il mio codice:

   Width    Centimeter Inches Feet Yards Meters     Length    Centimeter Inches Feet Yards Meters     Depth    Centimeter Inches Feet Yards Meters          $('#calculate').click(function(){ //These are the amount of mm in each drop down menu type var array = new Array(); array['centimeter'] = '10'; array['inches'] = '25.4'; array['feet'] = '304.8'; array['yards'] = '914.4'; array['meters'] = '1000'; //Find the width in mm var widthVal = $('#width').val(); var widthType = $('#width-type').val(); var width = widthVal * array[widthType]; //Find the length in mm var lengthVal = $('#length').val(); var lengthType = $('#length-type').val(); var length = lengthVal * array[lengthType]; //Find the depth in mm var depthVal = $('#depth').val(); var depthType = $('#depth-type').val(); var depth = depthVal * array[depthType]; //Find the total volume in mm var volumeInMillimeters = length * depth * width; //try to convert it back to meters var volume = volumeInMillimeters / 1000; alert(volumeInMillimeters); alert(volume); });  

Anche qui c’è un js fiddle così puoi vederlo funzionare – https://jsfiddle.net/xk4r8hm2/1/

Se qualcuno può aiutarmi a fare questo, non cercando solo una risposta, ma la spiegazione per andare con esso per favore.

Grazie!

Hai solo bisogno di dividerlo tre volte per 1000 cioè

 var volume = volumeInMillimeters / (1000 * 1000 * 1000 ); 

Questo perché il volume ha 3 dimensioni. Se hai moltiplicato ogni dimensione con 1000, per ottenerla in mm indietro, devi dividere efficacemente ogni dimensione per 1000 o dividere il risultato finale per (1000 * 1000 * 1000).