Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    IE e Firefox, semplicissimo cast?

    Allora, premesso che mi sto trattenendo da una fila initerrotta di imprecazioni, qualcuno mi spiega perchè il seguente codice funziona perfettamente sotto firefox

    codice:
    //funzione che arrotonda ai 2 decimanli
    
    function arrotonda(valore){
    	return Math.round(valore*100) / 100;
    }
    
    //funzione che calcola il totale di un movimento di carico
    
    function conteggia_movimento_carico(id_prodotto){
    
    nome_form	='carica_'+id_prodotto;
    nome_div	='carica_valore_movimento_'+id_prodotto;
    
    f=document.forms[nome_form];
    
    quantita=parseFloat(f.quantita.value);
    prezzo	=parseFloat(f.prezzo_attuale.value);
    
    valore_movimento=String(arrotonda(quantita*prezzo));
    
    
    document.getElementById(nome_div).innerHTML=valore_movimento+ ' Euro' ;
    }
    mentre non in explorer?

    per farlo andare in explorer ho scoperto che se faccio:

    codice:
    //funzione che arrotonda ai 2 decimanli
    
    function arrotonda(valore){
    	return Math.round(valore*100) / 100;
    }
    
    //funzione che calcola il totale di un movimento di carico
    
    function conteggia_movimento_carico(id_prodotto){
    
    nome_form	='carica_'+id_prodotto;
    nome_div	='carica_valore_movimento_'+id_prodotto;
    
    f=document.forms[nome_form];
    
    quantita=parseFloat(f.quantita.value);
    prezzo	=parseFloat(f.prezzo_attuale.value);
    
    valore_movimento=String(arrotonda(quantita*prezzo));
    alert(valore_movimento);
    
    document.getElementById(nome_div).innerHTML=valore_movimento+ ' Euro' ;
    }
    PERCHE?
    forse l'alert cambia la variabile facendo un cast su stringa?
    in tal caso come faccio a fare questo cast?


    [edit]
    credo di avere risolto cosi:

    /*arrotonda un float */

    function arrotonda(valore){
    return Math.round(valore*100) / 100;
    }

    /*funzione che calcola il valore di un movimento di carico*/

    function conteggia_movimento_carico(id_prodotto){

    nome_form ='carica_'+id_prodotto;
    nome_div ='carica_valore_movimento_'+id_prodotto;

    quantita=parseFloat(document.forms[nome_form].elements['quantita'].value);
    prezzo =parseFloat(document.forms[nome_form].elements['prezzo_attuale'].value);

    valore_movimento=String(arrotonda(quantita*prezzo) );

    document.getElementById(nome_div).innerHTML=valore _movimento+ ' Euro' ;
    }
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Forse perche' tendi di sommare ad un numero una stringa...

    prova:

    .....innerHTML='' + valore_movimento+ ' Euro' ;

    ciao
    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

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.