Autore |
Discussione |
|
coma
Utente medio
Regione: Puglia
Prov.: Bari
|
Inserito il - 23/10/2011 : 19:26:36
|
Salve a tutti, sto realizzando questo piccolo esercizio assegnatoci dal nostro professore di laboratorio, nel quale ci chiede di trovare il valore del pigreco fino alla sua sesta cifra decimale e stampare il numero di termini necessari per poter raggiungere tale valore! A tal punto, ho pensato bene di effettuare il tutto, adoperando un semplice while prendendo in considerazione, come condizione, un semplice confronto fra, il mio attuale valore del pigreco, e una costante che ho definito, la quale, rappresenta il valore del pigreco che intendo raggiungere! Ho dichiarato entrambe le variabili come double e nonostante ciò, il ciclo non viene portato a termine ricadendo in un loop! Non riesco assolutamente a capire in che modo si possa ovviare al problema, che puntualmente mi si presenta ogni qualvolta voglia creare un programma che gestisca i double. Vi mostro il codice in modo da poter rendere il problema molto più esplicativo! grazie mille per l'attenzione!!:) [url=http://pastebin.com/A2zisTqR]Have a look here[/url]
|
|
ultras da tastiera
Utente medio
Città: Bari
|
Inserito il - 23/10/2011 : 19:33:26
|
Il problema è dovuto alla rappresentazione dei numeri nell'aritmetica del calcolatore La condizione che hai messo nel while è sempre falsa |
|
|
coma
Utente medio
Regione: Puglia
Prov.: Bari
|
Inserito il - 23/10/2011 : 19:39:30
|
E lo so, immaginavo fosse per quello che il ciclo non andasse! Ma come dovrei fare per risolvere questo tipo di problema? Ho provato anche con piccoli artifici come il seguente : pi <= PIGRECO + 0.0000001 && PIGRECO <= pi + 0.0000001 Ma non ho risolto alcunchè! |
Modificato da - coma in data 23/10/2011 19:40:19 |
|
|
coma
Utente medio
Regione: Puglia
Prov.: Bari
|
Inserito il - 23/10/2011 : 19:47:44
|
Perdonate il doppio post, ma per una vista ho pubblicato un link vecchio, il codice di riferimento è questo! http://pastebin.com/AP6VJDNB |
|
|
coma
Utente medio
Regione: Puglia
Prov.: Bari
|
Inserito il - 23/10/2011 : 20:52:35
|
Risolto!!:) Il problema era dovuto alla eccessiva precisione nella rappresentazione decimale fornita dal tipo double, infatti, sostituendolo con float, il problema non sussiste più!:) |
|
|
n/a
deleted
|
Inserito il - 02/04/2021 : 10:12:01
|
¿No te das cuenta de lo que estamos hablando? |
|
|
|
Discussione |
|