Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    problema su un operazione tra variabili

    ciao a tutti, mi trovo di fronte ad un quesito assai sciocco.

    devo fare una semplice operazione aritmetica (somma o sottrazione) da alcune variabili.
    Queste variabile le passo tramite un modulo form via post.

    $variabileA = $_POST['numA'];

    dopo di che interrogo il mio database per estrapolare un valore (anch'esso numerico) per fare le operazioni tra questi 2 elementi; supponiamo di chiamare il dato dal DB $variabileB

    allora cosa faccio...

    (int)$variabileC = (int)$variabileA - (int)$variabileB

    Dove
    $variabileA = 1500
    Mentre
    $variabileB = 2000

    Effettuando la sottrazione dovrei trovarmi
    $variabileC = -500
    Mentre il risultato Trovato è:
    $variabileC = 500
    La sottrazione la effettuataq, ma non ha messo il segno -

    Qualcuno ha idea del perche?

    se faccio
    $c = 5-10;
    il risultato è
    $c = -5;

  2. #2
    Il problema dovrebbe essere il cast ad (int) che effettui sul risultato. Dai un'occhiata QUI.
    In pratica il "-500" viene trasformato in 500 tramite le regole che puoi leggere nell'articolo.
    Effettua l'operazione senza alcun cast (PHP dovrebbe effettuare il cast in automatico)

    Codice PHP:
    $variabileC $variabileA $variabileB 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    grazie della risposta,

    Prima di effettuare il cast in (int) avevo lasciato le cose cosi come stavano senza castare nulla.
    mi aspettavo di trovare il valore in negativo ... ma in realtà mi sono trovato il calcolo giusto ma senza segno (-).

    a quel punto ho effettuato il cast.

  4. #4
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ok ...
    è ora che smetta per 10 min di lavorare e vado a prendermi un caffè

    l'operazione funziona perfettamente, solo che ho invertito i parametri da calcolare

    quindi sottraevo il valore di B 1500 a 5000 e non viceversa.
    scusate .. ciao!

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.