Differenze tra le versioni di "Ottenere la parte intera e quella decimale di un numero in virgola mobile"

Da Gambas-it.org - Wikipedia.
 
Riga 27: Riga 27:
 
  <FONT Color=gray>' ''Con le funzioni "Left()" e "InStr()":''</font>
 
  <FONT Color=gray>' ''Con le funzioni "Left()" e "InStr()":''</font>
 
   Print Left(CStr(5 / 3), InStr(CStr(5 / 3), ".") - 1)
 
   Print Left(CStr(5 / 3), InStr(CStr(5 / 3), ".") - 1)
 +
 +
<FONT Color=gray>' ''Servendosi semplicemente dell'operatore " \ ":''</font>
 +
  Print 5 \ 3
 
   
 
   
 
  <FONT Color=gray>' ''Sottraendo la parte decimale individuata con la funzione "Frac()":''</font>
 
  <FONT Color=gray>' ''Sottraendo la parte decimale individuata con la funzione "Frac()":''</font>
   Print 5/3 - Frac(5/3)
+
   Print 5 / 3 - Frac(5 / 3)
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 58: Riga 61:
 
   
 
   
 
  <FONT Color=gray>' ''Utilizzando la funzione parte frazionaria "x - [x]" servendosi della funzione "Fix()":''</font>
 
  <FONT Color=gray>' ''Utilizzando la funzione parte frazionaria "x - [x]" servendosi della funzione "Fix()":''</font>
   Print 5/3 - Fix(5/3)
+
   Print 5 / 3 - Fix(5 / 3)
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione attuale delle 18:31, 29 ott 2014

Per estrarre da un numero in virgola mobile sia la parte intera che quella decimale, è possibile adoperare complessivamente almeno 5 modalità.


Ottenere la parte intera

Si potrà ottenere la parte intera di un numero in virgola mobile mediante le seguenti funzioni:

  • Fix();
  • Int();
  • Split();
  • Scan();
  • Left() e InStr().

Esempio pratico:

Public Sub Main()

' Con la funzione "Fix()":
  Print Fix(5 / 3)
 
' Con la funzione "Int()" (con un numero positivo):
  Print Int(5 / 3)
 
' Con la funzione "Split()":
  Print Val(Split(CStr(5 / 3), ".")[0])
   
' Con la funzione "Scan()":
  Print Scan(CStr(5 / 3), "*.*")[0]

' Con le funzioni "Left()" e "InStr()":
  Print Left(CStr(5 / 3), InStr(CStr(5 / 3), ".") - 1)

' Servendosi semplicemente dell'operatore " \ ":
  Print 5 \ 3

' Sottraendo la parte decimale individuata con la funzione "Frac()":
  Print 5 / 3 - Frac(5 / 3)

End


Ottenere la parte decimale

Si potrà ottenere la parte decimale di un numero in virgola mobile mediante le seguenti funzioni:

  • Frac();
  • Split();
  • Scan();
  • Right() e InStr().

Esempio pratico:

Public Sub Main()

' Con la funzione "Frac()":
  Print Frac(5 / 3)
  
' Con la funzione "Split()" (viene estratta senza lo zero né la virgola, ossia solo i numeri grezzi che compongono la parte):
  Print Val(Split(CStr(5 / 3), ".")[1])
   
' Con la funzione "Scan()" (viene estratta senza lo zero né la virgola, ossia solo i numeri grezzi che compongono la parte):
  Print Scan(CStr(5 / 3), "*.*")[1]

' Con le funzioni "Right()" e "InStr()" (viene estratta senza lo zero né la virgola, ossia solo i numeri grezzi che compongono la parte):
  Print Right(CStr(5 / 3), Len(s) - InStr(CStr(5 / 3), "."))

' Utilizzando la funzione parte frazionaria "x - [x]" servendosi della funzione "Fix()":
  Print 5 / 3 - Fix(5 / 3)

End