Buon giorno ragazzi,
oggi vi delizierò con una nuova puntata dellla faida tra browser, o meglio tra javascript e jscript.
Ho scritto un calcolatore di mutuo (approssimativo ovviamente...con tanto di disclaimer ) per il sito di una agenzia immobiliare.
Su firefox funziona perfettamente, su chrome anche....rullo di tamburi :tamburomg:....non funziona su IE.
Ecco il codice :
mi potreste aiutare a renderlo compatibile?
oggi vi delizierò con una nuova puntata dellla faida tra browser, o meglio tra javascript e jscript.
Ho scritto un calcolatore di mutuo (approssimativo ovviamente...con tanto di disclaimer ) per il sito di una agenzia immobiliare.
Su firefox funziona perfettamente, su chrome anche....rullo di tamburi :tamburomg:....non funziona su IE.
Ecco il codice :
Codice:
// questa funzione dato un numero num a virgola mobile ne restituisce uno con n cifre decimali...
function nCifre(num, n)
{
var powTen = Math.pow(10,n);
var corrected = powTen * num;
corrected = Math.round(corrected);
corrected /= powTen;
return corrected;
}
//il nome della funzione parla da solo...
function isInteger(num)
{
if(num == Math.round(num))
return true;
else
return false;
}
// approssima i centesimi ad un multiplo di 10...per estetica
function approxCents(num)
{
num = nCifre(num, 2);
if(!isInteger(num))
{
var buff = num*100;
var cents = buff%10;
cents = nCifre(cents,0);
buff /= 10;
buff = nCifre(buff,0);
cents += (buff%10)*10;
cents = nCifre(cents,0);
buff /=10;
buff = nCifre(buff,0);
while(cents%10)
cents++;
buff *= 100;
buff += cents;
return buff/100;
}
else
return num;
}
/* dato un numero num a virgola mobile restituisce una stringa
contenente le cifre del numero con la virgola al posto del punto... */
function printFloatVirgola(num)
{
var numStr = num.toString();
var size = numStr.length;
var formatted = "";
for(var i=0; i<size; i++)
if(numStr.charAt(i) == '.')
formatted += ',';
else
formatted += numStr.charAt(i);
return formatted;
}
/* dato un numero num a virgola mobile restituisce una stringa del tipo "€ c1 c2 ... cn,d1 d2"
dove c1, c2, ..., cn sono le cifre della parte intera del numero e d1 d2 sono le cifre dei centesimi di euro... */
function formatEuro(num)
{
num = approxCents(num);
var money = "€ ";
if(!((num*100) % 10)) // se la seconda cifra decimale è 0...
if(!((num*10) % 10)) // se lo è anche la seconda...
money += (num+",00");
else
{
money += printFloatVirgola(num);
money += '0';
}
else
money += printFloatVirgola(num);
return money;
}
// restituisce i tassi per calcolare il mutuo in funzione del numero degli anni e del tipo di mutuo, fisso o variabile...
function calcTasso(tipoM, anniM)
{
if(tipoM == "fisso")
{
if(anniM == 5)
return 1.0286;
else
if(anniM == 10)
return 1.0344;
else
if(anniM == 15)
return 1.0375;
else
if(anniM == 20)
return 1.0382;
else
if(anniM == 25)
return 1.0377;
else
if(anniM == 30)
return 1.0375;
}
else
{return 1.01;
}
}
//il nome parla da solo....
function calcMutuo()
{
var tipoM = document.getElementsByName("tipo")[0].value;
var capitaleM = document.getElementsByName("capitale")[0].value;
var durataM = document.getElementsByName("durata")[0];
durataM = durataM.options[durataM.selectedIndex].value;
var rataM = document.getElementsByName("rata")[0];
var tassoM = calcTasso(tipoM, durataM);
rataM.innerHTML = "<p style='font-size:1;'>Importo rata "+formatEuro((capitaleM*1.015*tassoM)/(durataM*12))+"</p>";
rataM.innerHTML += "\n\n*L'importo risultante è puramente indicativo, calcolato utilizzando il tasso Euribor 3 mesi o il tasso IRS di periodo maggiorati di uno spread medio pari a 1,5%";
}
mi potreste aiutare a renderlo compatibile?