Una funzione di arrotondamento per C# e VB.NET

Seguendo una discussione sugli arrotondamenti su VB.NET ho visto che la mia funzione di arrotondamento che avevo realizzato con Visual Basic 6 è ancora valida.
Ovviamente ho riscritto la funzione sfruttando la classe
Math del Framework .NET nei suoi metodi:
Math.Round - Arrotondamento matematico
Math.Ceiling - Arrotondamento per eccesso
Math.Floor - Arrotondamento per difetto

L'arrotondamento presentato nella funzione è alquanto diverso  da quello del framework, infatti sono possibili anche arrotondamenti come quello presentato nella form, impossibile da realizzare con la sola classe Math.

Il campo arrotondamento presentato è la "vera" differenza, sul campo (e sul parametro della funzione) va inserito il valore del "seme" dell'arrotondamento da ottenere es: 1 per arrotondamento all'unità 0,1 per l'arrotondamento con 1 decimale, 0,01 con due decimali (questi tre casi sono risolvibili anche con la sola classe Math), invece sono possibili anche arrotondamenti allo 0,15 o 9,998.

Storicamente, la funzione è nata per risolvere il problema del calcolo della quantità (peso) di materia prima da introdurre nelle confezioni, infatti con 1 grammo si facevano più di 10 confezioni, piccole differenze di materia prima moltiplicate per molte volte facevano saltare fuori grandi differenze con conseguenti problemi per gli approvvigionamenti che dovevano essere il più "giusti" possibile.

 

Esempio C#
Esempio VB.NET

Print | posted on venerdì 14 dicembre 2007 00:44

Feedback

# re: Una funzione di arrotondamento per C# e VB.NET

Left by carla at 10/05/2010 14:31
Gravatar utilissimo grazie mille

#  Arrotondamento di una cifra decimale - Pagina 2 - Visual Basic .Net - MasterDrive.it

Left by Pingback/TrackBack at 23/05/2010 14:13
Gravatar Arrotondamento di una cifra decimale - Pagina 2 - Visual Basic .Net - MasterDrive.it

Your comment:





 
Please add 6 and 5 and type the answer here:

Copyright © Luciano Bastianello

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski