Differenze tra le versioni di "Troncare alcune cifre decimali in un valore in virgola mobile"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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 (oss...")
 
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
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).
+
Poniamo il caso che da questo valore in virgola mobile <FONT Color=darkgreen>5,123456789</font> 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à.
 
Mostriamo alcune modalità.
Riga 34: Riga 34:
 
   f = CLong(f * 10 ^ decimali) / 10 ^ decimali
 
   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
 
   Print f
 
   
 
   

Versione attuale delle 07:25, 2 giu 2023

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à.

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