Differenze tra le versioni di "Arrotondamento di un numero con virgola mobile"

Da Gambas-it.org - Wikipedia.
Riga 55: Riga 55:
  
 
==Arrotondamento senza funzioni specifiche==
 
==Arrotondamento senza funzioni specifiche==
E' possibile effettuare l'arrotondamento senza alcuna funzione, anche escogitando qualcosa come questo esempio:
+
E' possibile effettuare l'arrotondamento senza alcuna funzione, come in questo esempio:
  '''Public''' Sub Button1_Click()
+
  '''Public''' Sub Main()
 
    
 
    
   Dim a, b As Float = 26.123
+
   Dim a As Float = 26.123
 
   
 
   
  ''<FONT Color=gray>'Arrotondamento all'unità <SPAN Style="text-decoration:underline">superiore</span>:''</font>
+
  <FONT Color=gray>' ''Arrotondamento all'unità superiore <SPAN Style="text-decoration:underline">se</span> ci sono dei decimali:''</font>
   a = Fix(a + 1)     <FONT Color=gray>' ''...oppure così: ''a = Fix(a) + 1'' ,  il risultato è identico.''</font>
+
   If a > Fix(a) Then a = Fix(a) + 1
 
  Print "a = "; a
 
 
 
<FONT Color=gray>' ''Arrotondamento all'unità <SPAN Style="text-decoration:underline">inferiore</span>:''</font>
 
  b = Fix(b - 1)    <FONT Color=gray>' ''...oppure così: ''b = Fix(b) - 1'' ,  il risultato è identico.''</font>
 
 
  Print "b = "; b
 
 
   
 
   
 +
  Print "a = "; a
 +
 
 
  '''End'''
 
  '''End'''
  
 
In console avremo:
 
In console avremo:
 
<BR>a = 27
 
<BR>a = 27
<BR>b = 25
 

Versione delle 04:19, 13 ott 2015

Se vogliamo ottenere un arrotondamento di un numero con la virgola, possiamo utilizzare la funzione Round() oppure la funzione Ceil().


Uso della funzione Round()

La funzione Round() arrotonda un numero al più vicino intero a seconda di alcuni casi.


Arrotondamento all'unità superiore

Se il primo numero decimale è uguale o supriore a 5, si avrà un arrotondamento all'unità superiore:

Public Sub Button1_Click()

 Dim f As Float

  f = Round(87326.5)

  Print f

End

In console avremo:
87327


Arrotondamento all'unità inferiore

Se il primo numero decimale è inferiore a 5, si avrà un arrotondamento all'unità inferiore:

Public Sub Button1_Click()

 Dim f As Float
 
  f = Round(87326.4999999)

  Print f

End

In console avremo:
87326


Uso della funzione Ceil()

E', poi, possibile molto semplicemente utilizzare anche la funzione aritmetica Ceil(): se il numero è positivo e contiene dei decimali, allora tale funzione restituirà un numero arrotondato all'unità intera superiore.

Public Sub Main()  

 Print Ceil(1.49)  
     
End

in console si avrà il risultato:
2


Arrotondamento senza funzioni specifiche

E' possibile effettuare l'arrotondamento senza alcuna funzione, come in questo esempio:

Public Sub Main()
 
 Dim a As Float = 26.123

' Arrotondamento all'unità superiore se ci sono dei decimali:
  If a > Fix(a) Then a = Fix(a) + 1

  Print "a = "; a
 
End

In console avremo:
a = 27