Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    100

    gestione euro e decimali

    Ciao a tutti.. volevo chiedervi se mi potevate aiutare a testare questo script e se possibile migliorarlo.
    Lo script serve a gestire i decimali nelle operazioni con gli euro.
    Vi incollo tutto il listato della pagina EURO.PHP . grazie, ciao a tutti.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Gestione euro in php</title>
    </head>
    <body>
    <form id="form1" name="form1" method="post" action="euro.php">
    Importo euro : <input type="text" name="imp" id="imp" />
    <input type="submit" name="button" id="button" value="Aggiungi 20%" />
    </form>
    <hr />
    <?php
    //ricevo valore
    $imp = $_POST['imp'];
    //verifico il formato utilizzato per gli utenti che scrivono al contrario punti e virgole :-|
    echo "Valore: $imp , dec = " . substr($imp, -3, 1) . "

    ";
    $decinuso = substr($imp, -3, 1);
    //inizializzo la variabile dei caratteri da eliminare
    $del = array(",",".");
    if ($decinuso == "." or $decinuso == ",") {
    $impint = substr($imp, 0, -3);
    $impint = str_replace($del,"",$impint);
    $impint = number_format($impint,0,"",".");
    $impdec = substr($imp, -2, 2);
    $imp = "$impint,$impdec";
    echo "caso '.' o ',' : Intero: $impint , Decimali: $impdec , Cifra totale: $imp
    ";
    } else {
    $imp = str_replace($del,"",$imp);
    //do il formato in euro (utile nel caso si passi un valore senza decimali
    $imp = number_format($imp,2,",",".");
    echo "caso 0-9 : Cifra importo $imp
    ";
    };
    // stampo a video l'importo base formattato in euro
    echo "Importo passato = € $imp
    ";
    //elimino la formattazione
    $del = array(",",".");
    $imp = str_replace($del,"",$imp);
    //converto in centesimi di euro
    $imp .= "0";
    //calcolo l'operazione, ad esempio l'iva al 20%
    $iva = $imp * 0.20;
    // stampo a video l'iva formattato in euro
    $ivap = $iva / 1000 ;
    echo "Iva al 20% = € " . number_format($ivap,3,",",".") . "
    ";
    //calcolo l'importo complessivo delle operazioni
    $tot = ($imp + $iva) / 1000 ;
    //do il formato in euro con due decimali (arrotondamento automatico)
    $tot = number_format($tot,2,",",".");
    echo "Importo ivato = € $tot
    ";
    ?>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    100

    Create le funzioni

    Ho portato tutto in funzioni... reinvio il codice.
    Spetto vostri consigli... e possibili bug da risolvere in caso. Grazie a tutti
    CODICE: ( euro.php )

    <?
    function pulisci($pulisci) {
    $del = array(",",".");
    $pulisci = str_replace($del,"",$pulisci);
    return $pulisci;
    };
    function fn($val,$v = 2){
    if ($v == 2) {
    $val = number_format($val,2,",",".");
    } else {
    $val = number_format($val,0,"",".");
    };
    return $val;
    }
    function fi($fi) { // Formatta Importo in modo corretto
    $decinuso = substr($fi, -3, 1);
    if ($decinuso == "." or $decinuso == ",") {
    $impint = substr($fi, 0, -3);
    $impint = pulisci($impint);
    $impint = fn($impint,0);
    $impdec = substr($fi, -2, 2);
    $fi = "$impint,$impdec";
    } else {
    $fi = pulisci($fi);
    $fi = fn($fi);
    };
    return $fi;
    };
    function cc($cc) { // converti in centesimi
    $cc = pulisci($cc);
    $cc .= "0";
    return $cc;
    };
    function ce($ce) { // converti in euro
    $ce = $ce / 1000;
    $ce = fn($ce);
    return $ce;
    }
    function cent($cent) {
    $cent = fi($cent);
    echo "Importo ripulito : $cent
    ";
    $cent = cc($cent);
    echo "Importo centesimi : $cent
    ";
    return $cent;
    };
    function euro($euro) {
    $euro = ce($euro);
    return $euro;
    };
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Gestione euro in php</title>
    </head>
    <body>
    <form id="form1" name="form1" method="post" action="euro.php">
    Importo euro : <input type="text" name="imp" id="imp" />



    <label>
    <input name="operazione" type="radio" id="operazione_0" value="piu" checked="checked" />
    Somma</label>


    <label>
    <input type="radio" name="operazione" value="meno" id="operazione_1" />
    Sottrai</label>


    </p>
    Importo euro :
    <input type="text" name="imp2" id="imp2" />
    <input type="submit" name="button" id="button" value="Esegui" />
    </form>
    <hr />
    <?php
    //ricevo valore
    $imp = $_POST['imp'];
    $imp2 = $_POST['imp2'];
    $oper = $_POST['operazione'];
    switch ($oper) {
    case "piu" :
    $importo = cent($imp) + cent($imp2);
    break;
    case "meno" :
    $importo = cent($imp) - cent($imp2);
    break;
    };
    echo "importo totale : € " . euro($importo) ."
    ";
    ?>
    </body>
    </html>

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.