Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Delucidazione su round

  1. #1

    Delucidazione su round

    ciao!

    ho una domanda, probabilmente banale, sulla funzione round:
    Codice PHP:
    $numero2 66.396;
    echo 
    'NO ROUND: ' $numero2 '<br>';
    echo 
    'ROUND: ' round($numero22) . '<br>';
    echo 
    'ROUND UP: ' round($numero22PHP_ROUND_HALF_UP) . '<br>';
    echo 
    'ROUND DOWN: ' round($numero22PHP_ROUND_HALF_DOWN) . '<br>';
    echo 
    'ROUND HALF EVEN: ' round($numero22PHP_ROUND_HALF_EVEN) . '<br>';
    echo 
    'ROUND HALF ODD: ' round($numero22PHP_ROUND_HALF_ODD) . '<br>'
    in tutti i casi esce questo:
    codice:
    NO ROUND: 66.396
    ROUND: 66.4
    ROUND UP: 66.4
    ROUND DOWN: 66.4
    ROUND HALF EVEN: 66.4
    ROUND HALF ODD: 66.4
    sempre un decimale.
    per quale motivo se io ho impostato due decimali??

  2. #2
    Perche' comunque round() arrotonda al numero di cifre decimali che chiedi, ma mostra solo le cifre decimali significative, quindi 66.40 viene restituito come 66.4 perche' sono lo stesso numero.

    Per fare quello che ti serve devi usare number_format() oltre a round().

  3. #3
    Quote Originariamente inviata da k.b Visualizza il messaggio
    Perche' comunque round() arrotonda al numero di cifre decimali che chiedi, ma mostra solo le cifre decimali significative, quindi 66.40 viene restituito come 66.4 perche' sono lo stesso numero.
    ...............
    scusa ma continuo a non capire.
    il numero iniziale non è 66.40, ma 66.396.
    66.396 arrotondato a due cifre dovrebbe diventare 66.39, non 66.4.
    infatti se 66.386 diventa 66.38.

  4. #4
    66.396 non si arrotondera' mai a 66.39 perche' round() arrotonda al numero piu' vicino, e 66.40 e' piu' vicino di 66.39

    Infatti 66.386 si arrotonda a 66.39 e non a 66.38

  5. #5
    Quote Originariamente inviata da k.b Visualizza il messaggio
    66.396 non si arrotondera' mai a 66.39 perche' round() arrotonda al numero piu' vicino, e 66.40 e' piu' vicino di 66.39

    Infatti 66.386 si arrotonda a 66.39 e non a 66.38
    si hai ragione, non avevo letto bene.
    cmq anche usando number_format mi esce 66.40:
    Codice PHP:
    $numero2 66.396;
    echo 
    'NO FORMAT: ' $numero2 '<br>';
    echo 
    'FORMAT: ' number_format($numero22) . '<br>';
    echo 
    'FORMAT SEP: ' number_format($numero22',''.') . '<br>'
    risultato:
    codice:
    NO FORMAT: 66.396
    FORMAT: 66.40
    FORMAT SEP: 66,40
    a questo punto ho ancora più dubbi.
    questi sono importi calcolati in fattura.
    e escono da articoli scontati.
    da un punto di vista normativo è giusto?
    come dovrei arrotondare questi importi??

  6. #6
    Questo non lo so, e' una domanda fiscale/amministrativa, non tecnica

    PS se vuoi passare da 66.396 a 66.39 devi usare solo number_format() senza round()

  7. #7
    Quote Originariamente inviata da k.b Visualizza il messaggio
    Questo non lo so, e' una domanda fiscale/amministrativa, non tecnica

    PS se vuoi passare da 66.396 a 66.39 devi usare solo number_format() senza round()
    eh no, l'esempio del post precedente usa solo number_format().
    e mi esce 66.40.

  8. #8
    Hai ragione, number_format() fa anche un arrotondamento, anche se non e' documentato.

  9. #9
    cmq mi sono informato.
    anche da un punto di vista normativo è giusto il 66.40.
    magari può interessare a qualcun'altro.

    grazie mille k.b!!

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.