On Jun 17, 2007, at 8:22, Cecil Westerhof wrote:
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.
What is going wrong is that you want $2 to be interpreted as a string,
and $3 as a number. So you could leave off the N flag again and write
(string-to-number $3)
Hmmm, maybe this is not completely satisfying now, maybe it would
be good to have replacements literally and then to write (getHours
"$2"), that
might also be an option.
Needs more thinking.
- Carsten
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 <[EMAIL PROTECTED]>
_______________________________________________
Emacs-orgmode mailing list
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477
_______________________________________________
Emacs-orgmode mailing list
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode