Erm, if you just want the number truncated down to an integer, can't you
just subtract 0.5 from the floating point value before you convert it to an
integer?

e.g. Integer(5.9 - 0.5) = 5
     Integer(5.4 - 0.5) = 5

Is this what you needed?

Chris




-----Original Message-----
From: Kevan Dettelbach [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, 21 November 2001 9:37 am
To: [EMAIL PROTECTED]
Subject: <lingo-l> Converting from C to Lingo


Hi all,

It's been almost two years since I've visited the list after  my breakdo...
err sabatical. My current project requires that I be able to convert
Gregorian/Julain dates to a lunar based calendar system. I was fortunate
enough to find the code I needed on the web, though it was written in C ( a
language I've grown rather rusty in).

The conversion to Lingo went quite well ( I found myself wishing Lingo
accepted the ++ and += symbols) but I soon ran into some trouble. As would
be expected, the code to convert the dates is heavily based on mathematics
and involves a mixture of floating point and integer calculations.

When I ran my program, it did not give me any errors, but it was not
returning the correct lunar date. The trouble lay in the different ways C
and Lingo convert floating point to integer values.

In C, if you assign a value such as 5.67 to an integer variable, the number
is truncated to 5. In Lingo, (5.67).integer is rounded to the nearest
integer, in this case 6.

What I ended up having to do is to write a simple floor function and apply
it carefully anywhere an integer variable was given a floating point value.

This required me to study in detail both versions of the code andled me to
wonder if a better way existed. I could not find any documentation in Lingo
on built-in floor or ceiling functions, nor could I find any information on
changing the way Lingo converted floats to ints. (ideally a system flag to
turn off rounding would be nice).

If anyone has any ideas, I'd appreciate hearing them.

It's great to be back and I look forward to hearing from you...

Kevan Dettelbach
Lunny Communications


[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/LUJ/lingo-l.cgi  To post messages to the list,
email [EMAIL PROTECTED]  (Problems, email [EMAIL PROTECTED])
Lingo-L is for learning and helping with programming Lingo.  Thanks!]

[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/LUJ/lingo-l.cgi  To post messages to the list,
email [EMAIL PROTECTED]  (Problems, email [EMAIL PROTECTED])
Lingo-L is for learning and helping with programming Lingo.  Thanks!]

Reply via email to