On Mon, May 19, 2008 at 2:20 PM, SG <[EMAIL PROTECTED]> wrote:
> jack ha scritto:
>
>> E' questo che mi lascia perplesso: lo step 3 altro non e' se non l' "Int"
>> (od il "Fix") del valore di ritorno di step 2 che e' "555"...perche',
>> invece, si ha "554"?
>>
>>
> Ciao jack,
> ha ragione ... c'è qualcosa che non va.
>
> Al volo non mi era sembrato strano avere 554 come ritorno di INT(
> operazione che da come risultato quasi 554,xxxxxxx e qualcosa) perchè poteva
> non esser vero che.... (come dicevi qualche messaggio fa)
>
> /"In teoria son tutti double, quindi non dovrebbero esserci errori di
> conversione "
> /
>
> ma anche specificando il tipo di formato degli operandi e provando a dare
> una sequenzialità alle operazioni si ottiene il problema ugualmente
>
> Sub Main ()
>
> dim nr1 as double
> dim nr2 as double
>
> dim ris1 as double
> dim ris2 as double
> dim ris3 as double
>
> nr1 = 0.5545
> nr2 = .5 / 1000
>
> ris1 = (nr1 + nr2) * 1000
> ris2 = int(ris1)
> ris3 = int((nr1 + nr2) * 1000)
>
> print ris1, ris2, ris3
>
> end sub
>
> Ecco cosa ho verificato, testando il codice precedente:
>
> Linux (slackware) + OOo 2.4 - Risulato: 555 554 554
> Win2k + OOo 2.4 - Risulato: 555 554 554
>
> VBA Office 2000 - Risultato: 555 *555* 554
>
> credo che ci sia da indagare .... oppure il buon Paolo Mantovani, vede e sa
> qualcosa che al momento mi sfugge.
Ti ringrazio dell' interesse :)
Ho scritto quanto segue:
Function myRoundUp (Numero As Double, Cifre As Integer) As Double
Dim oFunction
oFunction = CreateUnoService("com.sun.star.sheet.FunctionAccess")
myRoundUp() = oFunction.callFunction("ROUNDUP", Array(Numero, Cifre))
End Function
a partire da:
http://www.oooforum.org/forum/viewtopic.phtml?t=23530&highlight=round
ovviamente funge come dovrebbe anche se, di certo, si introduce delay