Troncare alcune cifre decimali in un valore in virgola mobile
Da Gambas-it.org - Wikipedia.
Poniamo il caso che da questo valore in virgola mobile 5,123456789 vogliamo troncare alcuni decimali, in modo tale da far restare soltanto le prime due cifre decimali (ossia sino ai centesimi, ottenendo insomma il valore finale: 5,12).
Mostriamo alcune modalità.
Indice
Usando la funzione "Fix()"
Public Sub Main() Dim f As Float = 5.123456789 f = Fix(f * 100) / 100 Print f End
Usando la funzione "Int()"
Public Sub Main() Dim f As Float = 5.123456789 Dim decimali As Byte = 2 f = Int(f * 10 ^ decimali) / 10 ^ decimali Print f End
Usando la funzione "CLong()" o "CInt()"
Public Sub Main() Dim f As Float = 5.123456789 Dim decimali As Byte = 2 f = CLong(f * 10 ^ decimali) / 10 ^ decimali Print f End
Usando la funzione "Floor()"
Public Sub Main() Dim f As Float = 5.123456789 Dim decimali As Byte = 2 f = Floor(f * 10 ^ decimali) / 10 ^ decimali Print f End
Ottenere un numero in formato stringa usando la funzione "Format()"
Public Sub Main() Dim f As Float = 5.123456789 Print Format(f, "#.##") End
Usando la funzione esterna di C "printf()"
L'uso di questa soluzione permetterà, però, soltanto di mostrare meramente il risutato.
' int printf(const char *format, ...) ' Sends formatted output to stdout. Private Extern printf($format As String, num As Float) As Integer In "libc:6" Public Sub Main() Dim f As Float = 5.123456789 printf("%.3lf", f) End