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

```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

```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/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

```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/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

```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

```