[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>