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
.NET Framework
Approssimazione a 5 decimali
venerdì 25 luglio 2008 - 10.31
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
netgit
Profilo
| Newbie
32
messaggi | Data Invio:
ven 25 lug 2008 - 10:31
Cercherò di spiegarmi con un esempio
Module Module1
Sub Main()
Dim num As Double = 1.25
Console.WriteLine(Math.Round(num, 1, MidpointRounding.AwayFromZero))
num = 1.225
Console.WriteLine(Math.Round(num, 2, MidpointRounding.AwayFromZero))
num = 1.2225
Console.WriteLine(Math.Round(num, 3, MidpointRounding.AwayFromZero))
num = 1.22225
Console.WriteLine(Math.Round(num, 4, MidpointRounding.AwayFromZero))
num = 1.222225
Console.WriteLine(Math.Round(num, 5, MidpointRounding.AwayFromZero))
num = 1.2222225
Console.WriteLine(Math.Round(num, 6, MidpointRounding.AwayFromZero))
End Sub
End Module
L'output è :
1,3
1,23
1,223
1,2223
1,22222
1,222223
La penultima riga, cioè quella con l'approssimazione a 5 decimali è errata.
E' un errore del framework o sbaglio qulcosa io ?
Andrea
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 29 lug 2008 - 11:10
Ciao
>La penultima riga, cioè quella con l'approssimazione a 5 decimali è errata.
>E' un errore del framework o sbaglio qulcosa io ?
Da MSDN: "Double-precision numbers store an approximation of a real number"
Quindi è un normale comportamento:
Double Data Type
http://msdn.microsoft.com/en-us/library/x99xtshc.aspx
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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 !