Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Problema con i cicli in vb.net (vigola)
lunedì 05 giugno 2006 - 17.43
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
dando
Profilo
| Newbie
34
messaggi | Data Invio:
lun 5 giu 2006 - 17:43
Ciao a tutti ho un problema con i cicli. Prendiamo ad esempio:
deltapi = p0 / 100
For i1 = 1 To 100
pp(i1) = pp(i1 - 1) - deltapi
ecc...
Next
per i primi cicli funziona tutto bene. dal quinto o il sesto in poi invece di darmi un valore preciso nel vettore pp()
mi mette un numero con un casino di numeri decimali molto prossimo a quello teorico. ad esempio invece di
essere 18 mi scrive 18.0000000000002 oppure 17.99999999999997.
Come mai?
qualcuno mi saprebbe dare una mano?
perche lo fa solo da un certo ciclo in poi?
grazie per l'aiuto
19018
Profilo
| Expert
502
messaggi | Data Invio:
lun 5 giu 2006 - 17:57
>deltapi = p0 / 100
>For i1 = 1 To 100
>pp(i1) = pp(i1 - 1) - deltapi
Come hai dichiarato le variabili, di che tipo?
Stefano Passatordi
http://blogs.dotnethell.it/stem/
dando
Profilo
| Newbie
34
messaggi | Data Invio:
lun 5 giu 2006 - 18:26
Tutte di tipo double.
che rapidita!
19018
Profilo
| Expert
502
messaggi | Data Invio:
lun 5 giu 2006 - 18:39
>Tutte di tipo double.
Lo immaginavo, è normale che sia così. Essendo un double un numero a 64 bit a precisione doppia ti riporta tutta la sfilza di cifre. Se vuoi troncare il risultato devi fare un cast implicito (dichiarando risultato come int) oppure esplicito usando CType.
ciao
Stefano Passatordi
http://blogs.dotnethell.it/stem/
dando
Profilo
| Newbie
34
messaggi | Data Invio:
lun 5 giu 2006 - 18:48
Ok... su questo son d'accordo. pero non capisco perche mi approssimi cosi un intero
d'altronde se deltapi è 0.5 non è ne 0.49999999997 ne 0.50000000001 o no?
oppre è proprio cosi?
19018
Profilo
| Expert
502
messaggi | Data Invio:
mar 6 giu 2006 - 02:15
Se da double lo casti ad int un numero del tipo y,kkkk diventa solo y. Se ancora ottieni valori con la virgola allora sbagli il cast.Cosa non capisci?
Stefano Passatordi
http://blogs.dotnethell.it/stem/
dando
Profilo
| Newbie
34
messaggi | Data Invio:
mar 6 giu 2006 - 14:22
Capisco che se converto in intero me lo metta a posto. ma non capisco perche fa delle approssimazioni del genere semplicemente con sottrazioni di numeri interi. Tra le altre cose non è neanche fondamentale per quello che sto facendo ma mi chiedevo solo se sbagliavo da qualche parte. Che mi approssimi un numero a 10 cifre decimali con una divisione periodica ci puo stare ma con una sottrazione di interi un po meno. cmq se mi dici che e normale allora son tranquillo!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !