* 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. -- mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode: > get Memacs from https://github.com/novoid/Memacs < https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github