Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Arrontondare i decimali

    Ciao a tutti
    Dovrei arrotondare dei numeri decimali ma non a intero cioè mi spiego

    se ho 4.2 deve darmi 4
    se ho 4.9 mi deve dare 4.5

    si puo dare?
    Ultima modifica di techno; 22-05-2021 a 15:15

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,220
    Codice PHP:
    floor($numero 2) / 2
    Earth2: 3QCNSPFQUH

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Codice PHP:
    floor($numero 2) / 2
    Ciao mi spieghi un po questo che mi hai gentilmente suggerito quel "/ 2" a cosa serve?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,220
    Il ragionamento del *2/2 è quello di avere alla fine lo stesso numero di partenza, ma è il floor() che fa funzionare il giochetto.

    Prima di ritornare al numero di partenza col /2, il floor scarta l'eventuale decimale trasformando in intero il numero raddoppiato, questo fa si che il seguente /2 porti ad un altro numero intero se si era arrivati ad un numero pari, cosa che si verifica se il numero di partenza aveva un decimale compreso tra 0.0 e 0.4, porta invece ad un numero con decimale .5 se l'intero risultante dal floor fosse dispari, cosa che accade se il numero di partenza aveva un decimale compreso tra 0.5 e 0.9.

    Da notare che usando round() al posto di floor() non si avrebbe lo stesso risultato, perché round() nei casi con decimale tra .0 e .4 si comporta come floor(), ma in quelli con decimale tra .5 e .9 incrementa di 1 il numero, portando un errore di .5, rispetto al risultato che vuoi ottenere, quando si fa /2
    Earth2: 3QCNSPFQUH

  5. #5
    ottimo grazie tutto chiaro.
    Ultima modifica di techno; 31-05-2021 a 16:29

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,220
    Non fai *2 dentro al floor()

    Codice PHP:
    $calc floor( ($voto $total) * ) / 2
    Earth2: 3QCNSPFQUH

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