C#: Funzione trunc in caso Decimal
copia linkDescrizione del difetto
In architettura .NET la funzione TRUNC di numeri DECIMAL / CURRENCY non si comportava come nel caso Java, in particolare non troncava correttamente le cifre decimali richieste. Il difetto derivava dal fatto che il numero DECIMAL veniva convertito in double durante il processo e questo ne poteva far cambiare la notazione in alcuni casi specifici.
Effetti del malfunzionamento
La funzione TRUNC in JAVA e C# poteva restituire un valore diverso in alcuni casi specifici. Il valore più corretto era quello JAVA.
Soluzioni
Usare la versione 11.1 oppure implementare una propria funzione di troncamento.
Funzionalità interessate
Uso funzione matematica TRUNC in ambito C#.
Note
Esempio di malfunzionamento:
Java: Trunc(1818 * 70 / 100, 2) = 1272,60
C#: Trunc(1818 * 70 / 100, 2) = 1272,59
Ultima modifica: 23/03/2021 / Validità: da 11.1.4900