Newsgroup: it.comp.lang.visual-basic
Titolo: Arrotondamenti

Ciao a tutti...
Ho un problema a cui nonostanti ci abbia passato intere ore a ragionarci non
ci sono ancora arrivato.
Come faccio ad arrotondare un prezzo?
io ho pre esempio la cifra Euro 856.75
voglio arrotondare alle 0.50 per difetto  Euro e cioč al valore 856.50
Come faccio???
Grazie
~~~~~~~~~~~~~~~~
Andrea Fabbrucci
anfa...@tin.it
~~~~~~~~~~~~~~~~

 Grazie
La funzione Format ho l'impressione che non ti possa aiutare.
L'unica che mi viene in mente č di isolare il valore dopo la virgola o il
punto con la funzione InStr e con If o Select case arrotondare , e
successivamente ricomporre il numero.
giusepppeD
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Come faccio???
per ricavare il valore intero (senza arrotondamenti) usa la funziona Int(),
mentre per ottenere la parte decimale puoi fare qualcosa del genere:
(Numero - Int(Numero)) * 100. questo ti restituisce un numero da 1 a 99, che
rappresenta la parte decimale. con un semplice if ti basta aggiungere 0.50
alla parte intera del tuo valore se la cifra ottenuta prima č >= 50, non
aggiungerci nulla se č < 50.
ciao, assa.
--
Sito Comune
http://www.it-lang-vb.net/

 ha scritto nel messaggio
news:2hio8.27141$pT1.7...@news1.tin.it...

Prova cosě:
Private Function ARR(Numero As Currency) As Currency
    ARR = Int(Numero)
    If Numero - ARR >= 0.5 Then ARR = ARR + 0.5
End Function

 voglio arrotondare alle 0.50 per difetto  Euro e cioč al valore 856.50
Euro = Int(Euro * 2) / 2
--
Er Roscio
(la matematica non č un'opinione !... :-)))

 voglio arrotondare alle 0.50 per difetto  Euro e cioè al valore 856.50
Mi rispondo da solo a questo T perchè riflettendoci per tutto il pomeriggio
ho trovato una soluzione migliore!
Così la metto a disposizione per tutti gli altro
Allora
Se l'arrotondamento è per DIFETTO:
    ValoreArr =  int ( Importo / Arrotondamento ) * Arrotondamento
infatti:
    int(856.75/0.50) = 1713
    1713*0.50 = 856.50
Se l'arrotondamento è per ECCESSO:
    ValoreArr =  int ( (Importo / Arrotondamento) +0.99) * Arrotondamento
infatti:
    int(856.75/0.50) +0.99= 1714
    1713*0.50 = 857
Fenomenale no!!!
Questo ti permentte anche di sfruttare una tabella de tipo
            Valore        Arr
              20.00            0.10
            100.00            0.50
            999999.99      1.00
Il programma raggionerà così
se il valore da arrotondare è minore di 20.00 allora esegui arrotondamento a
0.10
se il valore da arrotondare è minore di 100.00 allora esegui arrotondamento
a 0.50
Che ve ne pare?
Ciao e grazie per il vs interessamento!!!


Se arrotondi per eccesso 856.001 ti ritorna 856.00
Considera che per molte cose, ad esempio il costo dei carburanti, o di
materiali venduti in quantità non discrete, sono ammessi importi con la
terza cifra decimale.
Ciao
Alberto

In questa pagina trovi la procedura completa per l'arrotondamento di cifre
in Euro, secondo la normativa CEE.
http://www.devspy.com/Art/Lang/Scr.aspx?id=31
Michele
__________________________________________________________
DevSpy.com - Information Technology per gli sviluppatori Windows
Per conoscere e per farti conoscere...
URL: 
http://www.devspy.com/
Email: 
webm...@devspy.com