At 09:56 PM 3/6/2004, you wrote:
hi,
I am confused about the use of double, FlpDouble and FlpCompDouble in Palm,
what are the differences if MathLib is included?


#include <FloatMgr.h> #include "MathLib.h"

Char   long_d[4] = "123",
           long_m[8] = "45.6789";
FlpDouble      longitude_d, longitude_m;
double      pi = 3.14159265358979;
double     hk80 = 0.00244444444444;

            longitude_d = FlpAToF(long_d);
            longitude_m = FlpAToF(long_m);
            longitude_m = longitude_m/pi;
            longitude_m = longitude_m - hk80;

also, when i run the above codes, no matter how do i swap the use of double,
FlpDouble and FlpCompDouble.fd , it still has error.

You shouldn't ever need to use types other than 'double', except for calling a few OS functions.


FlpCompDouble is a composite type, a union of "FlpDouble" and "double". Here's the definition:

typedef union {
        double  d;
        FlpDouble fd;
        UInt32  ul[2];
        FlpDoubleBits fdb;
} FlpCompDouble;

You can declare one of these, assign your double value to its .d member, then pass the address of its .fd member to any functions needed a FlpDouble.

BTW, you don't need to #include <FloatMgr.h>... this is included in the standard <PalmOS.h> header bundle.

You didn't say what tool you were using -- if you're using prc-tools (GCC), you can't call FlpAToF directly. You need to use the FlpBufferAToF version -- see the comments in FloatMgr.h for the reasons why you have to do this.

-- Ben Combee, senior DTS engineer, PalmSource, Inc.
   Read "Combee on Palm OS" at http://palmos.combee.net/



--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to