Nessun effetto speciale in questo script.
Semplicemente serve a rappresentare un numero (importo in denaro) con la giusta formattazione, cioè inserendo i punti che delimitano le migliaia.
L'uso più immediato che se ne può fare è in un "carrello della spesa" quando non sia necessario (o sia scomodo) ricaricare la pagina per dei cambiamenti minimi, ad esempio si può dare all'utente la scelta del mezzo di trasporto preferito (corriere espresso o posta ordinaria) per cui può si può cambiare dinamicamente il contenuto delle celle interessate semplicemente aggiornando il valore del campo TEXT di un form.
La funzione si limita ad accettare il dato passato come parametro ed a trasformarlo in stringa. Successivamente conta i gruppi di tre caratteri che la compongono ed inserisce un punto fra ogni gruppo e restituisce la stringa trasformata.
Naturalmente nessun cambiamento viene fatto al dato originario che non viene coinvolto.
L'uso è semplice, la funzione, nell'esempio si chiama
punti(), può essere invocata semplicemente passandogli il parametro che può essere una variabile o il numero da convertire, per cui
punti(1200000) = 1.200.000 oppure se
totale = 1200000 si ha
punti(totale) = 1.200.000.
Per allineare a destra il valore uso una stringa (
leadingspaces) che contiene 20 caratteri spazio, alla fine della funzione da questa stringa vengono ritagliati gli spazi necessari da inserire
prima della stringa e vengono aggiunti davanti a tutto. Il numero di spazi di "leadingspaces" dev'essere variato in base alla dimensione (
SIZE) del campo TEXT che, per default, è 20.
<SCRIPT>
<!--
function punti(numero)
{
leadingspaces=" ";
var numnonpunt=numero.toString();
var cifre=numero.toString().length;
var gruppi=parseInt(cifre/3);
if (isNaN(gruppi)){gruppi=0}
var resto=parseInt(cifre - gruppi*3);
var numpunt="";
for (i=gruppi ; i>0 ; i--) {numpunt=numpunt+"."+numnonpunt.substr(cifre-3*i,3)}
numpunt=numnonpunt.substr(0,resto)+numpunt;
if (numpunt.substr(0,1) == "." ){numpunt=numpunt.substr(1,numpunt.length)}
numpunt=leadingspaces.substring(0,leadingspaces.length-numpunt.length)+numpunt;
return(numpunt);
}
//-->
</SCRIPT>