Italian Ritorno al vecchio thread [Arrotondare un risultato]

micro

Well-Known Member
Licensed User
Longtime User
No, non sono sparito...:D
Non so come sistemai all'epoca perchè con quella formula non ne venni a capo.
Ci ritorno su perchè mi si è ripresentata l'occasione e riprendendo la formula sinceramente non
capisco a cosa serve perchè i risultati non sono quelli che mi aspetto.
Partiamo da un'approssimazione a 5 a 5 (step di 5 con arrotondamento in eccesso ed in difetto)
Ho i seguenti valori
500
501
502
503
504
505
506
507
508
509
510
e in base a quello che è il nocciolo del thread e quindi quello che vorrei dovrei ottenere
500 = 500
501 = 500
502 = 500
503 = 505
504 = 505
505 = 505
506 = 505
507 = 505
508 = 510
509 = 510
510 = 510
Sono stato chiaro?
In pratica se la cifra meno significativa è superiore od uguale alla metà di 5 arrotondo per eccesso altrimenti per difetto.

Se non ricordo male tempo fa sistemai con sottrazioni ed addizioni agganciate all'onnipresente if then
ma penso che una formula ad hoc ci sia.
Grazie come sempre ragazzi (ragazzi per modo di dire:rolleyes:).
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
In pratica se la cifra meno significativa è superiore od uguale alla metà di 5 arrotondo per eccesso altrimenti per difetto.
Non è quello che hai visualizzato, però.
Ad esempio, 504: 4, cifra meno significativa, è superiore alla metà di 5, ma hai riportato:
504 = 500

Una cosa un po' raffazzonata potrebbe essere:
B4X:
    Dim ArrotondaA As Int = 5
Dim Resto As Int
Dim Arrotondato As Int

For i = 500 To 520
    Resto = i Mod ArrotondaA
    Arrotondato = i - Resto
    If Resto >= ArrotondaA / 2 Then
        Arrotondato = Arrotondato + ArrotondaA
    End If
    Log(i & TAB & Arrotondato)
Next

Log:
B4X:
500    500
501    500
502    500
503    505
504    505
505    505
506    505
507    505
508    510
509    510
510    510
511    510
512    510
513    515
514    515
515    515
516    515
517    515
518    520
519    520
520    520
 

micro

Well-Known Member
Licensed User
Longtime User
Ho faticato per far entrare l'ennesima sub su un piccolo micro ma è tutto ok.
Grazie ancora.
 
Top