Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Quote Originariamente inviata da k.b Visualizza il messaggio
    In questo caso "incluso" viene convertito nel numero 0 che ovviamente soddisfa la condizione >= 0.
    La condizione risulta soddisfatta a seguito delle conversioni da stringa a numero da te linkate, ma il contenuto di $prezzo rimane comunque "incluso" infatti:

    Codice PHP:
    <?php
    $prezzo 
    "incluso";
    if (
    $prezzo >= 0) {
        echo  
    " " $prezzo " €";
    } elseif (
    $prezzo  === "incluso") {
        echo 
    " ";
    }
    ?>

    stampa "incluso €"

    E' per questo che mi risulta difficile comprendere da dove spunta fuori lo 0 di cui si parla.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  2. #12
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    Forse mi sono spiegato male: all'interno della cella i valori possono essere un numero maggiore di zero, un valore = a zero ed un termine = incluso. Cioè un prezzo pari a 0 (zero); un prezzo con un valore numerico (ad es. 123,45); un prezzo che è già incluso in una voce precedente e viene specificato con il termine "incluso". Ora se io uso il
    Codice PHP:
     <?php
    $prezzo 
    "incluso";
    if (
    $prezzo >= 0) {
        echo  
    " " $prezzo " €";
    } elseif (
    $prezzo  === "incluso") {
        echo 
    " ";
    }
    ?>
    il termine incluso mi appare in ogni caso, e questo è errato. Dovrà apparire il termine "incluso" solo quando nella cella prezzo al posto di un numero c'è esattamente la parola incluso.
    Potrei anche esprimere il valore "incluso" numericamente mettendo un -1, ma nei conteggi finali verrebbe fuori una sottrazione di un centesimo che non avrebbe senso.
    Ultima modifica di ligrone; 27-05-2015 a 09:31

  3. #13
    Quote Originariamente inviata da ligrone Visualizza il messaggio
    Forse mi sono spiegato male: all'interno della cella i valori possono essere un numero maggiore di zero, un valore = a zero ed un termine = incluso. Cioè un prezzo pari a 0 (zero); un prezzo con un valore numerico (ad es. 123,45); un prezzo che è già incluso in una voce precedente e viene specificato con il termine "incluso". Ora se io uso il
    Codice PHP:
     <?php
    $prezzo 
    "incluso";
    if (
    $prezzo >= 0) {
        echo  
    " " $prezzo " €";
    } elseif (
    $prezzo  === "incluso") {
        echo 
    " ";
    }
    ?>
    il termine incluso mi appare in ogni caso, e questo è errato. Dovrà apparire il termine "incluso" solo quando nella cella prezzo al posto di un numero c'è esattamente la parola incluso.
    Potrei anche esprimere il valore "incluso" numericamente mettendo un -1, ma nei conteggi finali verrebbe fuori una sottrazione di un centesimo che non avrebbe senso.
    In realtà ti eri spiegato benissimo solo che hai affermato che ti veniva visualizzato 0 (zero) quando nel prezzo c'era la stringa "incluso" e questo era impossibile!

    Quote Originariamente inviata da ligrone Visualizza il messaggio
    quando nel campo prezzo c'è scritto "incluso" mi appare zero, io voglio che non appaia nulla. Dov'è l'errore?
    Grazie
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #14
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    Ho capito che Ci spieghiamo entrambi molto bene ma il risultato è quello che ho già detto: viene visualizzato 0 (zero) quando nella cella prezzo c'è il termine "incluso" .

  5. #15
    Quote Originariamente inviata da ligrone Visualizza il messaggio
    Ho capito che Ci spieghiamo entrambi molto bene ma il risultato è quello che ho già detto: viene visualizzato 0 (zero) quando nella cella prezzo c'è il termine "incluso" .
    Ed io ti ripeto che non è possibile!!! Ti ribadisco di stampare il contenuto di $prezzo prima dell'if!!! Se dentro c'è la stringa "incluso" allora NON può venirti stampato 0 (zero).
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #16
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    Quote Originariamente inviata da k.b Visualizza il messaggio
    Quando viene effettuata una conversione implicita da stringa a numero (come nel caso di una comparazione >= 0) la stringa viene trasformata secondo questi criteri: http://php.net/manual/en/language.ty...ing.conversion

    In questo caso "incluso" viene convertito nel numero 0 che ovviamente soddisfa la condizione >= 0.
    Credo che il problema sia qui... Bisognerebbe fare in modo che il valore della cella venga letto per com'è...

  7. #17
    Non sono sicuro di aver capito bene, perche' quello che dici non e' per niente chiaro (o almeno, non torna con il codice che hai scritto), comunque prova molto semplicemente a invertire la condizione:

    Codice PHP:
    if ($prezzo == 'incluso') {
        echo 
    "il servizio e' incluso nel prezzo";
    } else {
        echo 
    "il costo e' di {$prezzo} euro";

    resta il fatto che sarebbe meglio lasciare il prezzo come valore esclusivamente numerico, e usare un altro valore per indicare se il costo e' compreso oppure no.

  8. #18
    Quote Originariamente inviata da k.b Visualizza il messaggio
    Non sono sicuro di aver capito bene, perche' quello che dici non e' per niente chiaro (o almeno, non torna con il codice che hai scritto), comunque prova molto semplicemente a invertire la condizione:

    Codice PHP:
    if ($prezzo == 'incluso') {
        echo 
    "il servizio e' incluso nel prezzo";
    } else {
        echo 
    "il costo e' di {$prezzo} euro";

    resta il fatto che sarebbe meglio lasciare il prezzo come valore esclusivamente numerico, e usare un altro valore per indicare se il costo e' compreso oppure no.
    E come glielo spieghi che il problema è a monte e non nel codice che ha postato dato che in quel punto nella variabile $prezzo non c'è "incluso". Io ci ho rinunciato!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #19
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    Risolto così:
    Codice PHP:

     
    if(is_numeric($prezzo)
    {
    echo 
    number_format($prezzo' '',''.'), " €";
     }
    else
    {
     echo 
    " ";

    Grazie a tutti.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.