Visualizzazione dei risultati da 1 a 4 su 4

Discussione: formattare un numero

  1. #1

    formattare un numero

    ciao a tutti
    sto utilizzando il carrello per ecommerce i javascript nopcart.js e vorrei formattare tutti i prezzi nel formato 1.000,00 ovvero con puntino delle migliaia e vigola dei decimali
    cercando nel file che contiene le funzioni ho trovato questo codice
    Codice PHP:
    function moneyFormat(input) {
       var 
    dollars Math.floor(input);
       var 
    tmp = new String(input);

       for ( var 
    decimalAt 0decimalAt tmp.lengthdecimalAt++ ) {
          if ( 
    tmp.charAt(decimalAt)=="." )
             break;
       }

       var 
    cents  "" Math.round(input 100);
       
    cents cents.substring(cents.length-2cents.length)
               
    dollars += ((tmp.charAt(decimalAt+2)=="9")&&(cents=="00"))? 0;

       if ( 
    cents == "0" )
          
    cents "00";

       return(
    dollars "," cents);

    modificandolo sono riuscito a far visualizzare la virgola (il codice postato è quello già modificato) ma non il punto delle migliaia
    qualcuno potrebbe aiutarmi? grazie!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Codice PHP:



        non formattato
    : <input type="text" id='p' value="5000" />

        
    formattato: <input type="text" id='a' value="" />

        <
    button id='formatta'>formatta</button>
    </
    p>

    <
    script type='text/javascript'>
        
    document.getElementById('p');
        
    document.getElementById('a');
        
    formatta document.getElementById('formatta');
        
    a.value="";
        
    formatta.onclick = (function(){
                
    numero p.value;
                
    numero numero.replace(","".");
                
    numero parseFloat(numero).toFixed(2);
                
    numero numero.replace("."",");
                
    parti numero.split(","); //parti[0] parte intera parti[1] parte decimale
                
    cifreIntere parti[0].split(""); 
                if(
    cifreIntere.length>3)
                    for(
    i=cifreIntere.length-3i>=1i-=3)
                        
    cifreIntere[i]= "."+cifreIntere[i];
                
    parti[0]=cifreIntere.join("");
                
    numero parti[0].toString() +","parti[1].toString();
                
    a.value numero;
            }
        );
    </script> 

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function formatNumber(sFloatNum) {
    	var aFragms = parseFloat(sFloatNum.replace(',','.')).toFixed(2).split(".");
    	return aFragms[0].replace(/(\d{3})+$/g, ".$&").replace(/^\./, "").replace(/\d{3}(?!$)/g, "$&.") + "," + aFragms[1];
    }
    </script>
    </head>
    
    <body>
    <form name="myForm">
    
    
    non formattato: <input type="text" name="originale" value="5000" />
    
    formattato: <input type="text" name="formattato" value="" />
    
    <input type="button" value="formatta" onclick="this.form.formattato.value=formatNumber(this.form.originale.value);" /></p>
    </form>
    </body>
    </html>

  4. #4
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Stavo pensando che se è un controllo su un campo di testo quello che ti occorre, potresti provare con qualcosa del genere&hellip;

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function numbersOnly(oMyField1, oKeyEvent) {
    	var nChar = (oKeyEvent || window.event || { charCode: 0 }).charCode, sChar = String.fromCharCode(nChar), rSeparator = /,/;
    	return nChar === 0 || /\d/.test(sChar) || (rSeparator.test(sChar) && !rSeparator.test(oMyField1.value));
    }
    
    function formatNumber(oMyField2) {
    	var aFragms = parseFloat(oMyField2.value.replace(/\./g, "").replace(",",".")).toFixed(2).split(".");
    	oMyField2.value = aFragms[0].replace(/(\d{3})+$/g, ".$&").replace(/^\./, "").replace(/\d{3}(?!$)/g, "$&.") + "," + aFragms[1];
    }
    
    function unformatNumber(oMyField3) {
    	oMyField3.value = oMyField3.value.replace(/\.|,00/g, "");
    }
    </script>
    </head>
    
    <body>
    <form name="myForm">
    
    
    Inserire prezzo: <input type="text" name="prezzo" value="5.000" onblur="formatNumber(this);" onfocus="unformatNumber(this);" onkeypress="return numbersOnly(this, event)"; onpaste="return false;" /></p>
    </form>
    </body>
    </html>
    Il codice evidenziato in verde sembrerebbe superfluo, ma si rende necessario per evitare errori nel caso in cui l'utente clicchi col tasto destro sul campo e selezioni la voce «Annulla».


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.