Math.Round SBAGLIA ARROTONDAMENTO (VB2005)

venerdì 29 ottobre 2010 - 17.21
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 4.0  |  Visual Studio 2005

danpres Profilo | Newbie

Ciao Ragazzi,

ma vi siete mai accorti che la funzione Math.Round sbaglia clamorosamente gli arrotondamenti ?

fate questa prova:

Math.Round(3.165,2) = 3.16
Math.Round(3.175,2) = 3.18

ma siete mai capitati in questa situazione ?

luigidibiasi Profilo | Guru

qui hanno trattato lo stesso problema
http://blogs.ugidotnet.org/manuel0081/archive/2008/04/06/92069.aspx

Luigi Di Biasi


http://www.dibiasi.it/
http://netsell.dibiasi.it - ecomm software -
http://blogs.dotnethell.it/luigidibiasi/

danpres Profilo | Newbie


Si, ho trovato questo nuovo parametro che hanno aggiunto con il nuovo framework, ma il mio problema purtroppo rimane.

Il mio problema sta in un'applicazione per palmare, che utilizza compact framework 2.0 sviluppata con vb2005 (come da titolo).

Nel frattempo ho visto che questo problema è rimasto anche nel compact framework 3.5 che è l'ultimo pubblicato.

Ma io mi chiedo, un'applicazione gestionale per pc sviluppata col VB2005 in framework 2.0, sicuramente sbaglierà gli arrotondamenti a sto punto... Mah !

PS: Nel frattempo mi sto facendo la mia Round personalizzata....

luigidibiasi Profilo | Guru

Non che sia troppo pratico... ma anche una formatNumber (numero,2) ti sbaglia l'arrotondamento????

mi cade un mito sul framework!!! :D
Luigi Di Biasi


http://www.dibiasi.it/
http://netsell.dibiasi.it - ecomm software -
http://blogs.dotnethell.it/luigidibiasi/

danpres Profilo | Newbie

in effetti pare che formatnumber funzioni meglio:

formatNumber (3.165,2) = "3,17"
formatNumber (3.175,2) = "3,18"

anche se mi restituisce una stringa, convertendola nel modo che mi serve, funziona tutto....

grazie 1000 luigi !
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5