Hi, FWIW, there is a org-table-toggle-formula-debugger command.
On Mon, Sep 19 2016, Karl Voit wrote: > * Michael Welle <mwe012...@gmx.net> wrote: >> >> Karl Voit <devn...@karl-voit.at> writes: >> >>>> [...] >>>>> #+TBLFM: @2$3='(* $2 (org-time-string-to-hours "$1"));L >>>> or converting $2 to a number before the calculation should work also, >>>> but is more to write ;). >>> >>> Hm. I still got #ERROR. I reduced my issue to calculate the float (for >>> hours) >>> without multiplying it with "value": >> strange. I use the current Org version from git and Emacs 25.1. >> >>> | time [h:m:s] | value | product | >>> |--------------+---------+---------| >>> | 09:15:00 | 2.54321 | #ERROR | >>> >>> #+TBLFM: @2$3='(org-time-string-to-hours $1) >> That works for me. The default interpretation of $1 is used and >> therefore the value is fed into o-t-s-t-h as string. > > OK, this is my current issue then. > > I'm using Org from git/maint version 8.3.4 > (release_8.3.4-33-gd522fc) and GNU Emacs 24.5.1 (i686-pc-mingw32 > Windows) as well as Emacs 24.4.1 on GNU/Linux. > > Can somebody confirm my #ERROR behavior? > >>> #+TBLFM: @2$3='(org-time-string-to-hours $1);L >> That doesn't work. I'm not sure, but I guess it is because you asked for >> literal interpretation and it is not clear what that would mean for >> 09:15:00. > > I'd say the same. > >>> #+TBLFM: @2$3='(org-time-string-to-hours "$1");N >> Here you ask for interpretation as numbers. So the o-t-s-t-h function >> sees a stringified 9 as it's parameter value. Near, but still no t-shirt ;). > > I was wondering whether or not the stringification is done before or > after the number-conversion - as a test. It's an #ERROR anyway. > >>> ... each of the TBLFM results in the same error. >> Well, none of them looks like the one I wrote: >> >> #+TBLFM: @2$3='(* $2 (org-time-string-to-hours "$1"));L > > ... which I tried first, got an #ERROR and analyzed the issue. > Narrowing down to '(org-time-string-to-hours $1) is my issue since > I now understand the handling of $2 which is according to the > documentation. > >> You said, that gives an error, too. I have no idea, why. You can use >> (message...) and (type-of ...) to look at the types and values that you >> feed into your functions. Maybe that gives some insight? > > (type-of ...) -> very helpful > > | time [h:m:s] | value | product | > |--------------+---------+---------| > | 09:15:00 | 2.54321 | #ERROR | > > #+TBLFM: @2$3='(message (type-of (org-time-string-to-hours $1))) > #+TBLFM: @2$3='(type-of (org-time-string-to-hours $1)) > > ... both formulas lead to #ERROR in @2$3 with no message in the > *Message* buffer. > > From my understanding, the first one should have caused an output of > the type in the *Message* buffer and the second one should have > placed something like "integer" into @2$3. Am I correct? > >> The variant with converting $2 to a number is: >> #+TBLFM: @2$3='(* (string-to-number $2) (org-time-string-to-hours $1)) > > Since the issue is with $1, the (string-to-number $2) (which is > working) doesn't fix the #ERROR issue of $1 :-( > > > Thank you *very* much for your explanations! I (and hopefully many > others as well) am learning a lot here. -- Bernhard