[api-dev] Re: Missing a Frac() function
Am 08.08.2011 16:45, schrieb Johnny Rosenberg: ... > > 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
[api-dev] Re: Missing a Frac() function
2011/8/8 Christoph Jopp : > Am 08.08.2011 12:28, schrieb Johnny Rosenberg: >> 2011/8/8 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). >> >> 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 12:28, schrieb Johnny Rosenberg: > 2011/8/8 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). > > 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 : > 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 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
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