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

    Arrotondare per eccesso

    Buongiorno a tutti.
    Le sto provando tutte, ma non riesco.
    Faccio la somma di due numeri: 10,00 + 10,01
    Codice PHP:
    $_POST['v4'] = str_replace(",",".",$_POST['v4']);$_POST['v5'] = str_replace(",",".",$_POST['v5']);$somma2 floatval($_POST['v4'] + $_POST['v5']);echo $somma2
    Il risultato � questo: 20.009999999999998
    Invece dovrebbe essere questo: 20,01

    Ho provato con number_format(), ma niente.
    Codice PHP:
    number_format($somma2);
    number_format($somma2,2); 
    Ho provato number_format, togliendo il floatval, ma niente.

    Altre soluzioni?
    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    131
    hai provato round($somma2,2)

  3. #3
    Quote Originariamente inviata da ninja72 Visualizza il messaggio
    hai provato round($somma2,2)
    Grazie ma non funziona nemmeno cosi.
    Non capisco.

  4. #4
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    131
    ho dato per scontato l'echo prima della funzione round(), se non è quello linka il codice, a me funziona.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2001
    residenza
    Roma
    Messaggi
    91
    codice:
    number_format($somma2,2,",",".")
    Ottima scelta

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,012
    Quote Originariamente inviata da ffw Visualizza il messaggio
    codice:
    number_format($somma2,2,",",".")
    Questo non arrotonda per eccesso come richiesto, arrotonda e basta.
    Con il tuo codice 3.628 diventa 3.63, ma 3.622 risulta 3.62 e non 3.63.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2020
    Messaggi
    38
    Quote Originariamente inviata da ANTAGONIA Visualizza il messaggio
    Buongiorno a tutti.
    Le sto provando tutte, ma non riesco.
    Faccio la somma di due numeri: 10,00 + 10,01
    Codice PHP:
    $_POST['v4'] = str_replace(",",".",$_POST['v4']);$_POST['v5'] = str_replace(",",".",$_POST['v5']);$somma2 floatval($_POST['v4'] + $_POST['v5']);echo $somma2
    Il risultato � questo: 20.009999999999998
    Invece dovrebbe essere questo: 20,01

    Ho provato con number_format(), ma niente.
    Codice PHP:
    number_format($somma2);
    number_format($somma2,2); 
    Ho provato number_format, togliendo il floatval, ma niente.

    Altre soluzioni?
    Grazie mille.

    non capisco perchè devi arrotondare o cos'altro...
    a livello matematico 10.00+10.01 fa già = 20.01

    se tu aspetti tale risultato non devo fare molto se non una cosa di questo tipo

    function ReplaceMe($data){
    $val = str_replace(",",".",$data);
    return $val;
    }




    $a = ReplaceMe('10,00');
    $b = ReplaceMe('10,01');


    echo ($a+$b).'<hr>'; // torna 20.01

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