Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    2

    [PHP] problema con i calcoli

    Scusate quella sotto è una verifica di un paio di giorni fa. NON riesco a farla funzionare a dovere
    Non posso aspettare la prox settimana per vedere la prof... o finisce che ci passo sopra tutto il week-end
    L'esercizio riguardava un amministratore condominiale che decideva di applicare una tassa una tantum di Euro 1,20 al mq ai suoi inquilini, oltre alla tassa questi dovevano pagare una quota fissa di X (che io ho battezzato in Euro 150) e un balzello in % del 10% per appartamenti fino a 50 mq, del 15% fino a 150 mq, del 20%.
    Ho due problemi:
    1) fino a 50 mq va tutto bene, poi mi sbaglia i calcoli di qualche centesimo al mq
    2) da 151 mq in poi mi restituisce anche un parse error

    -se metto == davanti ai valori delle percentuali invece che un errore me ne restituisce tre
    -se tolgo gli else e lascio solo gli if sballa comunque i calcoli
    -se dopo gli if metto l'istruzione tra {} mi dà un altro errore

    oramai sto facendo esperimenti a casaccio!

    Ho visto gli altri post, probabilmente per voi questa è una cavolata ma io mi sto scraniando e non ne posso più, se qualcuno ha voglia di aiutarmi lo ringrazio di cuore.
    Ciao
    Carla


    <html>
    <head> <title> Una tantum condominiale </title> </head>



    <body bgcolor="lightblue"> <font color="BLUE" size=12> <marquee>
    UNA TANTUM CONDOMINIALE</marquee>
    </font>
    <form>
    <table width=80% border=2 align="center"> <tr> <td width=20%>
    Cognome <input type="text" name="cognome">
    </td> <td width=20%>
    Nome <input type="text" name="nome">
    </td> <td width=20%>
    Appartamento di mq <input type="text" name="mq">
    </td> <td width=20% align="center"> <input type="submit" value="Calcola!">
    </td> </tr> </table>
    </form>
    <?
    if(isset($_GET['mq'])&&isset($_GET['cognome'])&&isset($_GET['nome']))
    {
    $cognome=$_GET['cognome'];
    $nome=$_GET['nome'];
    $mq=$_GET['mq'];
    $fisso=150;
    $base=$mq*1.2;
    if ($mq<=50)$perc==10;
    else
    {
    if ($mq>50&&$mq<=150)$perc==15;
    else
    {
    if ($mq<=151)$perc==20;
    }}
    $baseconperc=$base+($base/100*$perc);
    $totale=$baseconperc+$fisso;
    echo "<table width=50% border='1' bordercolor='blue' align='center'>";
    echo "<tr> <td>";
    echo "Cognome: ".$cognome;
    echo "</td> <td>";
    echo "Nome: ".$nome;
    echo "</td> <td>";
    echo "Dimensioni appartamento: ".$mq;
    echo "</td> </tr> </table>";
    echo "<table width=100% border='1' bordercolor='blue' align='center'>";
    echo "<tr> <td>";
    echo "Importo base € ".$base;
    echo "</td> <td>";
    echo "Quota fissa € ".$fisso;
    echo "</td> <td>";
    echo "Base maggiorata € ".$baseconperc;
    echo "</td> <td>";
    echo "Il totale da pagare è € ".$totale;
    echo "</td> </tr> </table>";
    }
    ?>
    </body>
    </html>
    Studentessa-lavoratrice sull'orlo di una crisi di neri.

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    if ($mq>50&&$mq<=150)$perc=15;
    else
    {
    if ($mq<=151)$perc=20;
    }

    se i mq sono superiori a 150 allora 20%

    devi mettere >= (maggiore uguale) e usare per le assegnazione = e non == (comparazione)

    inoltre il tuo è un warning, perchè prima di assegnare $perc devi almeno dichiararla...

    $cognome=$_GET['cognome'];
    $nome=$_GET['nome'];
    $mq=$_GET['mq'];
    $fisso=150;
    $base=$mq*1.2;
    $perc="";

    per l'arrotondamento ci sono 2 soluzioni, ceil() e floor()

    es $new="4.3";
    $new=ceil($new);

    ti stampa 5

    ceil() arrotonda per eccesso fino al prossimo intero
    floor() arrotonda per difetto fino all' intero
    così non dovrebbe darti errori...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    2
    Funziona !!!

    Ma che cretina!!! Tra l'altro stamattina appena sveglia ho pensato "non avrò fatto casino con i < >?" visto che mi capita spessissimo in html di scrivere >br< ma poi mi sono scordata di controllare, ero troppo impegnata a mettere { ; e == a casaccio!

    ah ah ah ho visto adesso la mia firma, volevo scrivere "nerVi"... forse è ora che mi stacchi dal pc
    ma sa che non la correggerò... rende benissimo l'idea della fusione totale nella quale sono

    grazie di nuovo!
    Studentessa-lavoratrice sull'orlo di una crisi di neri.

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.