Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503

    Parte intera di una divisione

    Ho la necessità di prendere dei valori da un db, dividerli per un certo numero, diciamo 3 per esempio, e prendere solo la parte intera.
    Ho pensato di farlo in questo modo:

    $risultato = Math.floor($valore_dal_db/3);
    print $risultato;

    ma mi è venuto fuori un Math0 se $valora_dal_db = 0

    Se invece faccio così

    $risultato = (int)Math.floor($valore_dal_db/3);
    print $risultato;

    la stampa restituisce 00 che è già meglio, ma come faccio a farmi dare semplicemente 0?

  2. #2
    Dopo aver prelevato il numero, e diviso per 3 (Cosa credo sia facile da fare), puoi vedere se è intero usando : is_int()

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    codice:
    $risultato = Math.floor($valore_dal_db/3);
    if(is_int($risultato))
       print "intero";
    else
       print "non intero";
    Stampa: non intero

    codice:
    $risultato = (int)Math.floor($valore_dal_db/3);
    if(is_int($risultato))
       print "intero";
    else
       print "non intero";
    Stampa: non intero

    Per quale motivo non è intero neanche con il cast?

  4. #4
    Il PHP non e' javascript: "Math.floor()" significa concatenare come stringa il valore della costante "Math" (peraltro non definita) con il risultato di floor. Il type cast a int viene fatto su Math ottenendo quindi 0, e DOPO viene concatenato con floor($valore) trasformandolo in stringa, facendo cosi' fallire is_int().

    In breve, usa intval().

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Ti ringrazio, è andata

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.