- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Arrotonda 2 numeri dovo la virgola
-
Arrotonda 2 numeri dovo la virgola
salve a tutti....
sto usando queste righe per un form di calcolo iva, come potrei inserire un arrotondamento per eccesso o difetto con due sole cifre dopo la virgola?[HTML]
<SCRIPT language="Javascript1.2">
function do_it()
{
if (document.forms[0].totale.value=="")
{
window.alert("Inserisci un valore nel campo 'Imponibile'");
}
if ((document.forms[0].iva.value=="")||(((document.forms[0].iva.value)*1)>100)||(((document.forms[0].iva.value)*1)<0))
{
window.alert("Inserisci un valore IVA tra 0% e 100%");
}
else
{
var imp=(document.forms[0].totale.value)1;
var iva=(document.forms[0].iva.value)1;
document.forms[0].totaleiva.value=imp+(imp(iva/100));
document.forms[0].totiva.value=imp(iva/100);
if (document.forms[0].totaleiva.value=="NaN")
{
document.forms[0].totaleiva.value="Valore Importo / IVA non corretto";
window.alert("Inserisci un valore NUMERICO nei campi \n 'Imponibile' e 'IVA'");
document.forms[0].totale.value="0";
document.forms[0].iva.value="20";
}
}
}
</SCRIPT>[/HTML]
ciao e grazie a tutti
-
...scusate ma ho proprio bisogno di aiuto.....
allora per il momento sono riuscito a ridurre i decimali al totaleiva.value ma
se eseguo la stessa cosa anche con totiva.value non funziona:[HTML]
<SCRIPT language="Javascript1.2">
function do_it()
{
if (document.forms[0].totale.value=="")
{
window.alert("Inserisci un valore nel campo 'Imponibile'");
}
if ((document.forms[0].iva.value=="")||(((document.forms[0].iva.value)*1)>100)||(((document.forms[0].iva.value)*1)<0))
{
window.alert("Inserisci un valore IVA tra 0% e 100%");
}
else
{
var imp=(document.forms[0].totale.value)*1;
var iva=(document.forms[0].iva.value)1;
var fciva=(document.forms[0].fciva.value)1;
document.forms[0].totaleiva.value=imp+(imp(iva/100)+(fciva));
totaleiva.value = Number(totaleiva.value).toFixed(2);
document.forms[0].totiva.value=impiva/100;
totiva.value = Number(totiva.value).toFixed(2); ///NON FUNZIONA
if (document.forms[0].totaleiva.value=="NaN")
{
document.forms[0].totaleiva.value="Valore Importo / IVA non corretto";
window.alert("Inserisci un valore NUMERICO nei campi \n 'Imponibile' e 'IVA'");
document.forms[0].totale.value="0";
document.forms[0].iva.value="20";}
}
}
</SCRIPT><body>
<table border="0" cellpadding="0" cellspacing="5" width="66%" ><tr>
<td width="24%">Imponibile</td>
<td width="30%">€ <input name="totale" title="Il campo accetta solo numeri" onBlur="do_it();" size="12"> es: 00.00</td>
</tr>
<tr>
<td>IVA <input name="iva" class="text" title="Il campo accetta solo numeri" onBlur="do_it();" value="21" size="7">%</td>
<td>€ <input name="totiva" title="Il campo accetta solo numeri" onBlur="do_it();" size="12"> / <input name="fciva" title="Il campo accetta solo numeri" onBlur="do_it();" value="" size="7"></td>
</tr>
<tr>
<td>Totale (IVA compresa)</td>
<td>€ <input name="totaleiva" id="totaleiva" title="Il campo accetta solo numeri" size="12" > es: 00.00
</td>
</tr>
</table>
</body>[/HTML]
aiutatemiiii......:x
-
Questo dovrebbe fare l'arrotondamento:
[HTML]<script>
document.write('1,234 = '+(Math.round(1.234100)/100)+'<br>\n')
document.write('1,235 = '+(Math.round(1.235100)/100)+'<br>\n')
</script>[/HTML]Ora con un po' di aggiustamenti al codice il problema è risolto.
Nota importante: attenzione a come sono messe le parentesi...
-
non funziona......diciamo che non so come inserirlo!!!!
-
Se la soluzione che ho postato (apparentemente) non funzionasse, hai provato a metterlo negli opportuni tag html? Nel primo caso fa un arrotondamento per difetto, e l'altro per eccesso.
Se ora fosse a posto, come lo era già per me, suggerirei di vedere la specifica del metodo presente nel listato originario per capire come funziona. Una volta fatto il matching con quello proposto, riadattare il codice originario applicando il metodo funzionante.
-
...non funziona (era implicito) per come la inserisco io nello script e non nel codice html che invece (non apparentemente) funziona benissimo!
-
Premetto che avevo solo provato ad eseguire l'ultimo listato sul calcolo IVA, ma non ho capito come dovrebbe funzionare.
Il metodo JS che ho postato è la soluzione all'oggetto del thread "Arrotonda 2 numeri dopo la virgola". Il metodo toFixed() fa la stessa cosa di round()? Ad intuito direi di no perché se così fosse uno dei due non dovrebbe esistere essendo "doppione" dell'altro.
Un suggerimento utile è quello di analizzare nel dettaglio tutte le istruzioni JS.
Non so se il tuo algoritmo fosse corretto, ma questo è un altro paio di maniche...