ho riesumato ed adattato alcune vecchie funzioni a volte che non siano utili:
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>a</title>
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="ProgId" content="VisualStudio.HTML">
<meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
<script id="clientEventHandlersJS" language="javascript">
<!--
function Button1_onclick()
{
var number = (document.getElementById("numero").value);
var dec = (document.getElementById("decimali").value); //if(dec == "") dec = null;
var sepm = document.getElementById("sepmigliaia").value;
var sepd = document.getElementById("sepdecimale").value;
var n = fix(number, dec);
document.getElementById("risultato_fix").innerHTML = n;
n = formatCurrency(number,dec,sepm,sepd);
document.getElementById("risultato_formatCurrency").innerHTML = n;
}
//------------------------------------------------
//Arrotonda number a dec cifre
//se dec non è specificato, arrotonda a 10 cifre
//------------------------------------------------
function fix(number, dec)
{
var n =(dec >=0)? Math.pow(10,dec) : 1e10;
return Math.round(number * n) / n;
}
//-------------------------------------------------
//arrotonda il numero num a dec decimali
// num = numero da formattare
//dec = numero di decimali, predefinito = 2
//sepm = separatore migliaia, predefinito = spazio
//sepd = separatore decimale, predefinito = virgola
//-------------------------------------------------
function formatCurrency(num, dec, sepm, sepd)
{
if(dec == undefined || dec == "") dec = 2;
if(sepm == undefined || sepm == "") sepm = " "; sepm = sepm.substr(0,1);
if(sepd == undefined || sepd == "") sepd = ","; sepd = sepd.substr(0,1);
var d = Math.pow(10,dec);
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num)) num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num * d + 0.50000000001);
cents = num % d;
num = Math.floor(num / d).toString();
if(cents < 10) cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length - (1+i))/3); i++)
num = num.substring(0, num.length - (4 * i + 3)) + sepm + num.substring(num.length - (4 * i + 3));
return (((sign)?'':'-') + '' + num + sepd + cents);
}
//-->
</script>
</head>
<body MS_POSITIONING="FlowLayout">
<table>
<tr>
<td>Numero:</td>
<td><INPUT id="numero" type="text" value="10236425.9064" name="numero"></td>
</tr>
<tr>
<td>Decimali:</td>
<td><INPUT type="text" ID="decimali" NAME="decimali" value="2"></td>
</tr>
<tr>
<td>Sep. migliaia:</td>
<td><INPUT type="text" ID="sepmigliaia" NAME="sepmigliaia" value=" "></td>
</tr>
<tr>
<td>Sep decimale:</td>
<td><INPUT type="text" ID="sepdecimale" NAME="sepdecimale" value=","></td>
</tr>
<tr><td colspan="2"><INPUT type="button" value="Calcola" ID="Button1" NAME="Button1" language="javascript" onclick="return Button1_onclick()"></td></tr>
<tr>
<td>risultato fix:</td>
<td><span id="risultato_fix"></span></td>
</tr>
<tr>
<td>risultato formatCurrency:</td>
<td><span id="risultato_formatCurrency"></span></td>
</tr>
</table>
</body>
</html>