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

    differenza tra cifre non corretta

    Mi spiegate perché se scrivo

    $a=5;
    $b=6;

    $c=$a-$b;
    echo "$c";

    Scrive -1, come è giusto che sia

    poi ...

    $a=5.05;
    $b=6.02;

    $c=$b-$a;
    echo "$c";

    Scrive 1.03, come è giusto che sia


    e allora perchè se scrivo

    $a=4360.01;
    $b=4354.98;

    $a-$b =5.0300000000007 ?????????

    solo se trasformo il numero in decimale a 2 cifre mi dà la risposta corretta
    milka

  2. #2
    nessuno mi dà una spiegazione?
    milka

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ti direi " ben venuto nel mondo del floating point ".
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    ossia?
    milka

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ossia che i computer "sbagliano" a fare le operazioni con i numeri con la virgola

    http://www.php.net/language.types.float
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    e allora come risolvo?
    moltiplico le cifre x 100, faccio la differenza e poi ridivido per 100 e prendo i primi due decimali, o se prendo direttamente i primi 2 decimali il risultato è sempe corretto?
    milka

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    con unabella ricerca

    http://forum.html.it/forum/search.ph...by=&sortorder=


    ci sono in bella vista almeno 2 thread sull'arrotondamento a 2 cifre decimali.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.