trunc

Richard Gaskin ambassador at fourthworld.com
Sat Feb 9 20:03:40 CST 2008


Thomas Bähler wrote:
> Strange beahviour of the trunc function. This script:
> 
> on mouseUp
>    put 8.1 into Zahl
>    put Zahl - trunc(Zahl) into Dezimal
>    put Dezimal*60 & comma & trunc(Dezimal*60)
> end mouseUp
> 
> should return 6,6
> but instead I get 6,5
> 
> If I change the first line to
>    put 8.2 into Zahl
> 
> I get 12,11
> 
> with
>    put 8.3 into Zahl
> I get 18,18 as expected
> 
> RunRev 2.8.1 on Mac OSX 10.4.11
> 
> Any explanation?

It works that way because of a widespread acceptance of the failure of
machines to represent numbers logically.

You can work around this using a function that apparently eludes the
authors of most languages:

function logicalTrunc n
   if n is not a number then return "NAN"
   get offset(".", n)
   if it > 0 then
      delete char it to -1 of n
   end if
   return n
end logicalTrunc


-- 
  Richard Gaskin
  Managing Editor, revJournal
  _______________________________________________________
  Rev tips, tutorials and more: http://www.revJournal.com




More information about the use-livecode mailing list