Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problema con toFixed()

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    200

    problema con toFixed()

    Salve, qualcuno saprebbe dirmi perchè nel seguente codice, dopo toFixed(2) pr_iva restituisce NaN... questo però succede solo su Internet Explorer, menter su Chrome va tutto liscio

    codice:
     
    function calcola_sconto(){
    	var perc = document.getElementById('sconto').value;
    	if(perc == ''){perc = 0;}
    	var prezzo = document.getElementById('tot').innerHTML.replace(",",".").replace(" €","");
    	var scontato = parseFloat(prezzo) / 100 * parseFloat(perc);
    	scontato =  scontato.toFixed(2);
    	
    	var tot_imp = prezzo - scontato;
    	tot_imp = tot_imp.toFixed(2);
    	
    	var iva = document.getElementById('iva').innerHTML.replace("Totale Imposta IVA ","").replace("%: ","");
    	var pr_iva = parseFloat(tot_imp) / 100 * parseFloat(iva);
    	var tot_ivato = parseFloat(tot_imp) + (parseFloat(tot_imp) / 100 * parseFloat(iva));
    	tot_ivato = tot_ivato.toFixed(2);
            pr_iva = pr_iva.toFixed(2); 
    	
    	document.getElementById('tot_iva').innerHTML = pr_iva.replace(".",",")+" €";
    	document.getElementById('tot_ivato').innerHTML = tot_ivato.toString().replace(".",",")+" €";
    	
    	document.getElementById('pr_scontato').innerHTML = scontato.toString().replace(".",",")+" €";
    	
    	document.getElementById('tot_imp').innerHTML = tot_imp.toString().replace(".",",") +" €";
    }

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    presumibilmente perche'

    scontato = scontato.toFixed(2);

    trasforma il numero in stringa, quando poi lo utilizzi nei calcoli...

    Metti qualche alert qui e la per visualizzarti i passaggi intermedi
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    200
    non è questo il problema, perchè un alert appena prima di
    pr_iva = pr_iva.toFixed(2);

    restituisce il valore con una cifra decimale, mentre appena dopo restituisce NaN, tutto su Internet Explorer e su chrome tutto a posto sia prima che dopo

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Mi faresti una prova? cosa ottieni con queste istruzioni?


    alert("#"+pr_iva+"#");

    pr_iva = pr_iva.toFixed(2);

    alert("#"+pr_iva+"#");
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    200
    ho risolto già, praticamente io prendevo l'innerHTML di un div dove c'era il tag [b] e facevo un replace() solo che internet explorer considere [b] come se fosse [b] ed essendo js case sensitive non me lo sostituiva e pr_iva diventava il prodotto di un numero per una stringa...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.