View Full Version : [C++] Dubbio float
Ciao a tutti faccio una domanda banale sapete dirmi perche se dichiaro
float A=5.5
float B=5.4
float C= A-B
C anziche essere 0.1 mi da come risultato 0.09999
Forse sara elementare ma non capisco potete aiutarmi?
Ciao a tutti faccio una domanda banale sapete dirmi perche se dichiaro
float A=5.5
float B=5.4
float C= A-B
C anziche essere 0.1 mi da come risultato 0.09999
Forse sara elementare ma non capisco potete aiutarmi?
E' un problema dovuto alla codifica dei float.
Se provi a stampare A e B non otterrai i valori esatti, ma il numero codificato che più gli si avvicina tra quelli rappresentabili
E per avere un risultato preciso come bisogna fare?:confused:
Ho provato ha usare double anziche float e sembra funzionare.
Ma quale è la differenza tra double e float a cosa serve float se double è piu preciso?
Retifico la risposta precedente neanche con double funziona come si fa per avere la massima precisione?
Ho provato ha usare double anziche float e sembra funzionare.
Ma quale è la differenza tra double e float a cosa serve float se double è piu preciso?
Double e' piu' "preciso" quindi puo' rappresentare piu' valori, ma non vuol dire che puo' rappresentare infiniti valori. E' comunque un'approssimazione. Se vuoi una rappresentazione esatta devi scriverti da solo una classe numerica con precisione infinita (a scapito della velocita'), oppure usare Python che supporta nativamente questi numeri. Ouch.
Double e' piu' "preciso" quindi puo' rappresentare piu' valori, ma non vuol dire che puo' rappresentare infiniti valori. E' comunque un'approssimazione. Se vuoi una rappresentazione esatta devi scriverti da solo una classe numerica con precisione infinita (a scapito della velocita'), oppure usare Python che supporta nativamente questi numeri. Ouch.
Sicuro che nessuno ti abbia rubato l'account:D
wizard1993
06-04-2008, 20:51
Sicuro che nessuno ti abbia rubato l'account:D
infatti è da molto che cdi non si vede
cdimauro
06-04-2008, 21:34
Son qui (adesso che i miei figli dormono :| ), ma se non c'è motivo oppure qualcuno ha già esposto la soluzione al problema, è inutile che scriva. :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.