How does one marshal unsigned long long types in Perl XS?

If I have an unsigned long long number in Perl:

$num = 9234567890121111113;
print "num from perl: " . $num;

On a 32 bit Linux system I get:

num from perl: 2.34567890121111e+17

and in C code, I have:

   SV* obj;
   ...
   const char *nptr = SvPV(obj, PL_na);

then displaying nptr, I also get the scientific representation in the string. This means I cannot use strtoull to convert to an unsigned long long. Any portable solutions for extracting the unsigned long long number?

Thanks
William

Reply via email to