Discussione:
Moltiplicazione di due numeri decimali (con virgola o punto)
(troppo vecchio per rispondere)
Dumbo
2009-06-20 18:36:03 UTC
Permalink
La seguente funzione effettua la moltiplicazione di due numeri
decimali (il separatore decimale può essere indifferentemente una
virgola o un punto). Inoltre formatta il risultato con due cifre
decimali. Tutto bene ma .... funziona correttamente con IE ma non con
FF nè con Chrome.
Quale potrebbe essere la causa ?
Grazie per l'attenzione
Dumbo

function Calcola(){
// si può usare sia la virgola che il punto
var sg =document.getElementById ("Grammi").value;
sg=sg.replace(/\,/g , ".");
var g=parseFloat(sg);

var si =document.getElementById ("Importo").value;
si=si.replace(/\,/g , ".");
var i=parseFloat(si);

var tot=i/g;
tot = String(Math.round(tot*100)/100);
tot = (tot.indexOf(".")>=0)?tot+"0":tot+".00";
tot = tot.substr(0,tot.indexOf(".")+3);
tot=tot.replace(/\./g , ","); // output sempre con virgola
document.getElementById ("PrezzoGrammo").value =tot
}
ZER0
2009-06-20 21:17:28 UTC
Permalink
Post by Dumbo
La seguente funzione effettua la moltiplicazione di due numeri
decimali (il separatore decimale può essere indifferentemente una
virgola o un punto). Inoltre formatta il risultato con due cifre
decimali. Tutto bene ma .... funziona correttamente con IE ma non con
FF nè con Chrome.
Quale potrebbe essere la causa ?
Il codice di markup probabilmente. Il codice javascript, sebbene si
possa migliorare, non sembra presentare "errori".

Va quindi visto come definisci gli elementi HTML che poi usi in JS;
magari hai lo stesso ID per più elementi (cosa che non andrebbe mai
fatta, l'ID serve per identificare appunto un elemento, quindi deve
essere univoco), oppure hai impostato il NAME al posto dell'ID (IE,
non fa erroneamente grandi differenze tra i due a volte).

Sto solo facendo ipotesi su comportamenti noti. Puoi comunque usare
l'error console di firefox, che se non riesce a referenziare a modo
l'elementi usati negli script, dovrebbe segnalarti qualcosa.
--
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth."
Enrico Bassetti
2009-06-21 08:35:07 UTC
Permalink
Post by ZER0
Sto solo facendo ipotesi su comportamenti noti. Puoi comunque usare
l'error console di firefox, che se non riesce a referenziare a modo
l'elementi usati negli script, dovrebbe segnalarti qualcosa.
Aggiungerei Firebug.

Enrico
ZER0
2009-06-21 12:58:24 UTC
Permalink
Post by Enrico Bassetti
Post by ZER0
Sto solo facendo ipotesi su comportamenti noti. Puoi comunque usare
l'error console di firefox, che se non riesce a referenziare a modo
l'elementi usati negli script, dovrebbe segnalarti qualcosa.
Aggiungerei Firebug.
L'Error Console è "nativa", Firebug deve essere installato. Per vedere
se FF ha problemi a referenziare l'elemento, la prima basta e avanza.

Firebug aiuta in molti casi, ad esempio per monitorare cosa succede in
una chiamata XMLHttpRequest, ed è un'estensione molto utile quando sei
a sviluppare web application, ma non è indispensabile per ogni cosa.

Dire all'OP d'installarsi qualcosa, e poi se ne riparlava, solo per un
mero riferimento a un elemento, mi sembrava un po' esagerato.. :)
--
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth."
Loading...