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

Da Gambas-it.org - Wikipedia.
Riga 34: Riga 34:
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
    
 
    
   Dim a As Float
+
   Dim a, b As Float = 26.123
 
  a = 26.123
 
 
   
 
   
 
  ''<FONT Color=#006400>'Arrotondamento all'unità <SPAN Style="text-decoration:underline">superiore</span>:''</font>
 
  ''<FONT Color=#006400>'Arrotondamento all'unità <SPAN Style="text-decoration:underline">superiore</span>:''</font>
Riga 42: Riga 40:
 
   
 
   
 
   Print "a = "; a
 
   Print "a = "; a
 +
 
   
 
   
 
  ''<FONT Color=#006400>'Arrotondamento all'unità <SPAN Style="text-decoration:underline">inferiore</span>:''</font>
 
  ''<FONT Color=#006400>'Arrotondamento all'unità <SPAN Style="text-decoration:underline">inferiore</span>:''</font>
   a = Fix(a - 1)    ''<FONT Color=#006400>'...oppure così: ''a = Fix(a) - 1'' ,  il risultato è identico.''</font>
+
   b = Fix(b - 1)    ''<FONT Color=#006400>'...oppure così: ''b = Fix(b) - 1'' ,  il risultato è identico.''</font>
 
   
 
   
   Print "a = "; a
+
   Print "b = "; b
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 07:44, 16 feb 2012

Se vogliamo ottenere un arrotondamento all'unità superiore, possiamo utilizzare la funzione Round.
L'arrotondamento all'unità superiore avviene con Round soltanto se il primo numero decimale è uguale o supriore a 5.

Public Sub Button1_Click()

 Dim a As Float

 Print Round(87326.5)

End

In console avremo:
87327


Altrimenti si avrà un arrotondamento all'unità inferiore:

Public Sub Button1_Click()

 Dim a As Float

 a = 87326.4999999

  Print Round(87326.4999999)

End

In console avremo:
87326


Se si intende ottenere in ogni caso l'arrotondamento, si può escogitare qualcosa (senza Round) come questo esempio:

Public Sub Button1_Click()
 
 Dim a, b As Float = 26.123

'Arrotondamento all'unità superiore:
  a = Fix(a + 1)     '...oppure così: a = Fix(a) + 1 ,  il risultato è identico.

 Print "a = "; a


'Arrotondamento all'unità inferiore:
  b = Fix(b - 1)     '...oppure così: b = Fix(b) - 1 ,  il risultato è identico.

 Print "b = "; b

End

In console avremo:
27