[api-dev] Re: Missing a Frac() function

2011-08-08 Thread Christoph Jopp
Hi Johnny,

Am 07.08.2011 16:55, schrieb Johnny Rosenberg:
 Am I the only one who miss a Frac() function in OpenOffice.org Basic
 and as a cell function?
 
 I always have to use my own function, which is probably slower than a
 built in function would be:
 
 Function Frac(Value As Double) As Double
 Frac=Value-Fix(Value) ' Using ”Int” instead of ”Fix” doesn't work
 properly for negative values.
 End Function
 
 For example, Frac(-12.3456789) ⇨ -0.3456789
 
 I use Frac() all the time and I can't be the only one who need it, can I? 
 Among
 other things it's nice for separating time from time+date, even if there are
 other ways to do that.
 
 In case there is a Frac() function after all, what's it called?

The only built-in formula that comes to my mind is
REST(Dividend;Divisor) in German. In English this should be
MOD(Dividend;Divisor). But it still has the Problem with the sign of
the Dividend.
For example:
The number in Cell B2 is 4.3459234, your formula should be =MOD(B2;1)
The number in B2 is 4.3459234, then the formula should be =MOD(B2;-1)

To overcome this you could use the built-in formula VORZEICHEN(), in
English SIGN().
 In the example:
=MOD(B2;SIGN(B2)

Not really an improvement, just another way.

Maybe it helps you anyway.

Christoph

 
 Kind regards
 
 Johnny Rosenberg
 ジョニー・ローゼンバーグ



-- 
-
To unsubscribe send email to dev-unsubscr...@api.openoffice.org
For additional commands send email to sy...@api.openoffice.org
with Subject: help


[api-dev] Re: Missing a Frac() function

2011-08-08 Thread Christoph Jopp
Am 08.08.2011 08:59, schrieb Christoph Jopp:
 Hi Johnny,
 
 Am 07.08.2011 16:55, schrieb Johnny Rosenberg:
 Am I the only one who miss a Frac() function in OpenOffice.org Basic
 and as a cell function?

 I always have to use my own function, which is probably slower than a
 built in function would be:

 Function Frac(Value As Double) As Double
 Frac=Value-Fix(Value) ' Using ”Int” instead of ”Fix” doesn't work
 properly for negative values.
 End Function

 For example, Frac(-12.3456789) ⇨ -0.3456789

 I use Frac() all the time and I can't be the only one who need it, can I? 
 Among
 other things it's nice for separating time from time+date, even if there are
 other ways to do that.

 In case there is a Frac() function after all, what's it called?
 
 The only built-in formula that comes to my mind is
 REST(Dividend;Divisor) in German. In English this should be
 MOD(Dividend;Divisor). But it still has the Problem with the sign of
 the Dividend.
 For example:
 The number in Cell B2 is 4.3459234, your formula should be =MOD(B2;1)
 The number in B2 is 4.3459234, then the formula should be =MOD(B2;-1)
 
 To overcome this you could use the built-in formula VORZEICHEN(), in
 English SIGN().
  In the example:


Sorry, forgot one )

 =MOD(B2;SIGN(B2)

=MOD(B2;SIGN(B2))

;-)


 
 Not really an improvement, just another way.
 
 Maybe it helps you anyway.
 
 Christoph
 

 Kind regards

 Johnny Rosenberg
 ジョニー・ローゼンバーグ
 
 
 

-- 
-
To unsubscribe send email to dev-unsubscr...@api.openoffice.org
For additional commands send email to sy...@api.openoffice.org
with Subject: help


[api-dev] Re: Missing a Frac() function

2011-08-08 Thread Johnny Rosenberg
2011/8/8 Christoph Jopp j...@gmx.de:
 Hi Johnny,

 Am 07.08.2011 16:55, schrieb Johnny Rosenberg:
 Am I the only one who miss a Frac() function in OpenOffice.org Basic
 and as a cell function?

 I always have to use my own function, which is probably slower than a
 built in function would be:

 Function Frac(Value As Double) As Double
     Frac=Value-Fix(Value) ' Using ”Int” instead of ”Fix” doesn't work
 properly for negative values.
 End Function

 For example, Frac(-12.3456789) ⇨ -0.3456789

 I use Frac() all the time and I can't be the only one who need it, can I? 
 Among
 other things it's nice for separating time from time+date, even if there are
 other ways to do that.

 In case there is a Frac() function after all, what's it called?

 The only built-in formula that comes to my mind is
 REST(Dividend;Divisor) in German. In English this should be
 MOD(Dividend;Divisor).

I'm Swedish and it's REST in Swedish too… There is a web page
somewhere (http://www.probabilityof.com/excel.shtml#30) with
translations from Excel (and therefore also
OpenOffice.org/LibreOffice) cell function names in English to Swedish
and Norwegian, so giving me the English function names is always OK.

 But it still has the Problem with the sign of
 the Dividend.
 For example:
 The number in Cell B2 is 4.3459234, your formula should be =MOD(B2;1)
 The number in B2 is 4.3459234, then the formula should be =MOD(B2;-1)

 To overcome this you could use the built-in formula VORZEICHEN(), in
 English SIGN().
  In the example:
 =MOD(B2;SIGN(B2)

Thanks, works great!
=REST(B2;TECKEN(B2))

But still, there is nothing like that for OpenOffice.org Basic, is it?
There is Mod, but it returns an Integer…! So 12.3456789 Mod 1 returns
0. Not very useful in this case…

 Not really an improvement, just another way.

 Maybe it helps you anyway.

 Christoph

Well, it didn't help much in this case, but at least I learned
something, which I appreciate! ☺


Best regards

Johnny Rosenberg
ジョニー・ローゼンバーグ
-- 
-
To unsubscribe send email to dev-unsubscr...@api.openoffice.org
For additional commands send email to sy...@api.openoffice.org
with Subject: help


[api-dev] Re: Missing a Frac() function

2011-08-08 Thread Christoph Jopp
Am 08.08.2011 12:28, schrieb Johnny Rosenberg:
 2011/8/8 Christoph Jopp j...@gmx.de:
 Hi Johnny,

 Am 07.08.2011 16:55, schrieb Johnny Rosenberg:
 Am I the only one who miss a Frac() function in OpenOffice.org Basic
 and as a cell function?

 I always have to use my own function, which is probably slower than a
 built in function would be:

 Function Frac(Value As Double) As Double
 Frac=Value-Fix(Value) ' Using ”Int” instead of ”Fix” doesn't work
 properly for negative values.
 End Function

 For example, Frac(-12.3456789) ⇨ -0.3456789

 I use Frac() all the time and I can't be the only one who need it, can I? 
 Among
 other things it's nice for separating time from time+date, even if there are
 other ways to do that.

 In case there is a Frac() function after all, what's it called?

 The only built-in formula that comes to my mind is
 REST(Dividend;Divisor) in German. In English this should be
 MOD(Dividend;Divisor).
 
 I'm Swedish and it's REST in Swedish too… There is a web page
 somewhere (http://www.probabilityof.com/excel.shtml#30) with
 translations from Excel (and therefore also
 OpenOffice.org/LibreOffice) cell function names in English to Swedish
 and Norwegian, so giving me the English function names is always OK.
 
 But it still has the Problem with the sign of
 the Dividend.
 For example:
 The number in Cell B2 is 4.3459234, your formula should be =MOD(B2;1)
 The number in B2 is 4.3459234, then the formula should be =MOD(B2;-1)

 To overcome this you could use the built-in formula VORZEICHEN(), in
 English SIGN().
  In the example:
 =MOD(B2;SIGN(B2)
 
 Thanks, works great!
 =REST(B2;TECKEN(B2))
 
 But still, there is nothing like that for OpenOffice.org Basic, is it?
 There is Mod, but it returns an Integer…! So 12.3456789 Mod 1 returns
 0. Not very useful in this case…

No, the Basic Mod behaves different. But you can call the built-in
formula from Calc as in Koheis snippet:
http://codesnippets.services.openoffice.org/Calc/Calc.UsingBuiltinFunctions.snip

And so you get (without much sense in this context):


Function getRest( d As Double )
   svc = createUnoService( com.sun.star.sheet.FunctionAccess )
   arg = array( d, Sgn(d))
   getRest = svc.callFunction( MOD, arg )
End Function


Again just another way. It might be more helpful for more complex
Calc-Formulas. (Here you must use the english names of the formulas)
;-)

 
 Not really an improvement, just another way.

 Maybe it helps you anyway.

 Christoph
 
 Well, it didn't help much in this case, but at least I learned
 something, which I appreciate! ☺
 
 
 Best regards
 
 Johnny Rosenberg
 ジョニー・ローゼンバーグ

-- 
-
To unsubscribe send email to dev-unsubscr...@api.openoffice.org
For additional commands send email to sy...@api.openoffice.org
with Subject: help


[api-dev] Re: Missing a Frac() function

2011-08-08 Thread Johnny Rosenberg
2011/8/8 Christoph Jopp j...@gmx.de:
 Am 08.08.2011 12:28, schrieb Johnny Rosenberg:
 2011/8/8 Christoph Jopp j...@gmx.de:
 Hi Johnny,

 Am 07.08.2011 16:55, schrieb Johnny Rosenberg:
 Am I the only one who miss a Frac() function in OpenOffice.org Basic
 and as a cell function?

 I always have to use my own function, which is probably slower than a
 built in function would be:

 Function Frac(Value As Double) As Double
     Frac=Value-Fix(Value) ' Using ”Int” instead of ”Fix” doesn't work
 properly for negative values.
 End Function

 For example, Frac(-12.3456789) ⇨ -0.3456789

 I use Frac() all the time and I can't be the only one who need it, can I? 
 Among
 other things it's nice for separating time from time+date, even if there 
 are
 other ways to do that.

 In case there is a Frac() function after all, what's it called?

 The only built-in formula that comes to my mind is
 REST(Dividend;Divisor) in German. In English this should be
 MOD(Dividend;Divisor).

 I'm Swedish and it's REST in Swedish too… There is a web page
 somewhere (http://www.probabilityof.com/excel.shtml#30) with
 translations from Excel (and therefore also
 OpenOffice.org/LibreOffice) cell function names in English to Swedish
 and Norwegian, so giving me the English function names is always OK.

 But it still has the Problem with the sign of
 the Dividend.
 For example:
 The number in Cell B2 is 4.3459234, your formula should be =MOD(B2;1)
 The number in B2 is 4.3459234, then the formula should be =MOD(B2;-1)

 To overcome this you could use the built-in formula VORZEICHEN(), in
 English SIGN().
  In the example:
 =MOD(B2;SIGN(B2)

 Thanks, works great!
 =REST(B2;TECKEN(B2))

 But still, there is nothing like that for OpenOffice.org Basic, is it?
 There is Mod, but it returns an Integer…! So 12.3456789 Mod 1 returns
 0. Not very useful in this case…

 No, the Basic Mod behaves different. But you can call the built-in
 formula from Calc as in Koheis snippet:
 http://codesnippets.services.openoffice.org/Calc/Calc.UsingBuiltinFunctions.snip

 And so you get (without much sense in this context):


 Function getRest( d As Double )
   svc = createUnoService( com.sun.star.sheet.FunctionAccess )
   arg = array( d, Sgn(d))
   getRest = svc.callFunction( MOD, arg )
 End Function

I guess I'll stick with my own Frac function then, since it's more
straight forward and easier to understand. And shorter…

Function Frac(Value As Double) As Double
     Frac=Value-Fix(Value)
End Function

Kind regards

Johnny Rosenberg
ジョニー・ローゼンバーグ



 Again just another way. It might be more helpful for more complex
 Calc-Formulas. (Here you must use the english names of the formulas)
 ;-)


 Not really an improvement, just another way.

 Maybe it helps you anyway.

 Christoph

 Well, it didn't help much in this case, but at least I learned
 something, which I appreciate! ☺


 Best regards

 Johnny Rosenberg
 ジョニー・ローゼンバーグ

 --
 -
 To unsubscribe send email to dev-unsubscr...@api.openoffice.org
 For additional commands send email to sy...@api.openoffice.org
 with Subject: help

-- 
-
To unsubscribe send email to dev-unsubscr...@api.openoffice.org
For additional commands send email to sy...@api.openoffice.org
with Subject: help


[api-dev] Re: Missing a Frac() function

2011-08-08 Thread Christoph Jopp
Am 08.08.2011 16:45, schrieb Johnny Rosenberg:
snip
...
/snip
 
 I guess I'll stick with my own Frac function then, since it's more
 straight forward and easier to understand. And shorter…
 
 Function Frac(Value As Double) As Double
  Frac=Value-Fix(Value)
 End Function
 

Yes, of course. And I think also with less overhead (not using an UNO
Object)

;-)
-- 
-
To unsubscribe send email to dev-unsubscr...@api.openoffice.org
For additional commands send email to sy...@api.openoffice.org
with Subject: help