Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472

    ottenere 2 numeri dopo la virgola

    Vorrei sapere come fare per visualizzare una variabile troncandola 2 numeri dopo la virgola.
    Meglio ancora se oltre a visualizzarla così potessi anche attribuirgli quel valore.

    Partendo dal valore base, ad esempio di:
    $a=35.5921
    vorrei avere:
    $a=35.59

    Avevo fatto l'intero del numero *100 e poi il tutto diviso 100 ma credo ci sia un modo migliore...grazie!

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Grazie 1000

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Ciò che fa al mio caso è

    number_format($number, 2, '.', '');

    però ho visto che arrotonda sia per eccesso che per difetto, esempio:
    43.5634 ==> 43.56
    43.5682 ==> 43.57

    c'è modo per far arrotondare sempre per difetto?

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Ho visto che:
    -floor arrotonda per difetto i numeri INTERI
    -ceil arrotonda per eccesso i numeri INTERI
    -round arrotonda per difetto o per eccesso i numeri FLOAT con x numeri decimali.

    Solo che nella mia fattispecie round va a funzionare come number_format ciop arrotonda il secondo decimale a seconda che il terzo sia superiore o inferiore a 5.
    Invece io vorrei che arrotondasse il 2° decimale sempre per difetto!
    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Fra gli interventi degli utenti ho visto questo esempio e mi va bene:
    $a = sprintf("%01.2lf", floor($a*100)/100);
    facendo delle prove mi dà il risultato voluto, ma non ho ben capito la funzione sprintf (la guida dice "La funzione restituisce una stringa formattata in base al parametro format"...
    potete spiegarmi l'esempietto sopra in 2 parole?

  8. #8
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Siamo sempre lì... di tutte le funzioni "standard" che leggi in giro, non necessariamente qui, troverai sempre una spiegazione nel manuale. Adesso si tratta di sprintf(), floor l'hai vista prima, metti insieme le cose e tira le conclusioni...

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.