emacs-orgmode
[Top][All Lists]
Advanced

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]