[Javascript] Calcolo sbagliato

Mirco1974

Nuovo Utente
21 Mar 2017
4
1
3
50
Non riesco a capire dove sbaglio. Il risultato del calcolo non mi viene bene!
Qualcuno mi puà aiutare?

<head>
<title>The calculation of the maximum gullet width of cutter</title>
</head>

</html>

<form id="form1" name="form1" method="post" action=""
onsubmit="return calcola();">

<p>
<label>Input the cutter diameter D (mm) </label>
<br>
<br>
<input name="diameter" id="q1" maxlength="3" type="number" size="40" td align="left" border="1" value="" />
</p>
<p>
<input type="submit" value="calculate" />
<input type="reset" value="reset" />
<BR>
<br>
<label>The maximum gullet width (mm)</label>
<br>
<br>
<input type="text" name="totale" id="totale" size="40" $dec="0" td align="left" value="" />
</p>

</form>

<script type="text/javascript">
function calcola() {
var q1 = parseFloat(document.getElementById('q1').value);

if (q1 >= 16 && q1 < 80) {
document.getElementById('totale').value = (q1 * 0,235 + 7,2);
}
else if (q1 > = 80 && q1 < 250) {
document.getElementById('totale').value = (q1 * 0,1 + 18);
}
else {
document.getElementById('totale').value = (q1 * 0 + 43);
}

return false;
}
</script>
 
Prova a forzare i numeri ad essere numeri con
Codice:
Number(foo) + Number(bar)

Oppure tramite la somma unaria

Codice:
foo + +bar

In questo modo sei sicuro che quel bar viene considerato come un numero ed il più non sia una concatenazione.
Non sono un esperto di jquery ma mi sono trovato con un problema simile ed ho risolto con una cosa del genere.


Inviato dal mio iPhone utilizzando Tapatalk
 
Ultima modifica:
Ciao, devi richiamare l afunzione al click del butto non al sumbit
HTML:
<input type="button"  onclick="return calcola()" value="calculate" />

>= si scrive senza spazi
ps
utilizza i tag per la formattazione del codice quando lo posti sul forum
 
Il mio problema è che non so inserire l'opzione di scelta "if".

Se lo scrivo cosi, tutto funziona bene.
HTML:
<head>
   <title>The maximum gullet width </title>
   </head>
   <BR>
   <BR>
   <BR>
                      
   </html>
                      
                      
                      
   <form id="form1" name="form1" method="post" action=""
   onsubmit="return calcola();">
                      
       <p>
           <label>Input the cutter diameter Dmax (mm)</label>
           <br>
           <input name="diametro" id="q1" maxlength="3" type="text" size="40" value="" />  
       </p>
           <p>
               <br>
               <input type="submit" value="calculate" />
               <input type="reset" value="reset" />
               <br>
               <label>The maximum gullet width</label>
               <br>
               <input type="text" name="totale" id="totale" size="40" $dec="0" value="" />
           </p>
                      
                      
   </form>
                      
                      
       <script type="text/javascript">
           function calcola() {
               var q1 = parseFloat(document.getElementById('q1').value);
                                                      
               document.getElementById('totale').value = (q1 * 0.235) + (7.2);
                          
               return false;
           }
       </script>
Dovrei inserire la scelta:

1. Se il "diametro" è 16<= q1 <80, il risultato deve essere = q1 * 0.235 + 7.2;
2. Se il "diametro" è 80<= q1 <250, il risultato deve essere = q1 * 0.1 + 18;
3. Se il "diametro" è 16<= q1 <80, il risultato deve essere = 43;

Come devo fare?
 
Ultima modifica di un moderatore:
quello che hai scritto allinizio mi sembra corretto, cosa non ti torna ?
Codice:
if (q1 >= 16 && q1 < 80) {
            document.getElementById('totale').value = (q1 * 0, 235 + 7, 2);
        } else if (q1 >= 80 && q1 < 250) {
            document.getElementById('totale').value = (q1 * 0, 1 + 18);
        } else {
            document.getElementById('totale').value = (q1 * 0 + 43);
        }
ps:
sposto la discussione in javascript
 

Discussioni simili