[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Orgmode] Problem with lisp code in spreadsheet

**From**: |
Cecil Westerhof |

**Subject**: |
Re: [Orgmode] Problem with lisp code in spreadsheet |

**Date**: |
Sun, 17 Jun 2007 08:22:12 +0200 |

Op zo, 17-06-2007 te 00:14 +0200, schreef Carsten Dominik:
>* > In a row I have the following formula's:*
>* > =$3*
>* > ='(getHours $2);%.2f*
>* > ='(/ 67 0.72);%.1f*
>* > ='(/ $3 (getHours $2));%.1f*
>* > This gives:*
>* > 67*
>* > 0.72*
>* > 93.1*
>* > 0.0*
>* >*
>* > I would expect the last two to return the same number. Why is this not*
>* > the case?*
>* >*
>* > When I change the last formula to:*
>* > ='(/ 67 (getHours $2));%.1f*
>* > I get:*
>* > 93.5*
>* >*
>* > What is happening here?*
>* *
>* Since I don't know exactly what getHours does, I cannot be sure.*
>* The most likely reason though is that $3 and $2 are interpolated into*
>* Lisp expressions as strings, not as numbers.*
The tabel:
|--------+------+----+-----+------+----+------|
| Arnhem | 0:43 | 67 | 0.0 | 93.1 | 67 | 0.72 |
|--------+------+----+-----+------+----+------|
#+TBLFM: $4='(/ $3 (getHours $2));N%.1f::$5='(/ 67
0.72);%.1f::$6=$3::$7='(getHours $2);%.2f::
getHours:
(defun getHours(time)
(interactive "sHH:MM: ")
(let ((timelist (split-string time ":")))
(+
(string-to-number (car timelist))
(/
(string-to-number (cadr timelist))
60.0
)
)
)
)
The strange thing is that $3 is 67 and when I change $3 to 67 it works.
Even changing the formul to:
='(/ (string-to-number $3) (getHours $2));N%.1f
does not work.
>* See the discussion of the N mode flag in*
>* *
>* http://staff.science.uva.nl/~dominik/Tools/org/org.html#Formula-syntax- *
>* for-Lisp*
The problem is with $3, so I would not know how to use that. :-{
--
Cecil Westerhof <address@hidden>