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

Da Gambas-it.org - Wikipedia.
Riga 7: Riga 7:
 
* ''Int()'';
 
* ''Int()'';
 
* ''Split()'';
 
* ''Split()'';
* ''Scan()''.
+
* ''Scan()'';
 +
* ''Left() e InStr()''.
  
 
Esempio pratico:
 
Esempio pratico:
Riga 23: Riga 24:
 
  <FONT Color=gray>' ''Con la funzione "Scan()":''</font>
 
  <FONT Color=gray>' ''Con la funzione "Scan()":''</font>
 
   Print Scan(CStr(5 / 3), "*.*")[0]
 
   Print Scan(CStr(5 / 3), "*.*")[0]
 +
 +
<FONT Color=gray>' ''Con le funzioni "Left()" e "InStr()":''</font>
 +
  Print Left(CStr(5 / 3), InStr(CStr(5 / 3), ".") - 1)
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 32: Riga 36:
 
* ''Frac()'';
 
* ''Frac()'';
 
* ''Split()'';
 
* ''Split()'';
* ''Scan()''.
+
* ''Scan()'';
 +
* ''Right() e InStr()''.
  
 
Esempio pratico:
 
Esempio pratico:
Riga 45: Riga 50:
 
  <FONT Color=gray>' ''Con la funzione "Scan()" (viene estratta senza lo zero né la virgola, ossia solo i numeri grezzi che compongono la parte):''</font>
 
  <FONT Color=gray>' ''Con la funzione "Scan()" (viene estratta senza lo zero né la virgola, ossia solo i numeri grezzi che compongono la parte):''</font>
 
   Print Scan(CStr(5 / 3), "*.*")[1]
 
   Print Scan(CStr(5 / 3), "*.*")[1]
 +
 +
<FONT Color=gray>' ''Con le funzioni "Right()" e "InStr()" (viene estratta senza lo zero né la virgola, ossia solo i numeri grezzi che compongono la parte):''</font>
 +
  Print Right(s, Len(s) - InStr(s, "."))
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 13:35, 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)

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(s, Len(s) - InStr(s, "."))

End