[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