Hello,
In a previous email, I asked about ImportSpreadsheet's
tendency to munge large integers. E.g., 96933478 becomes
96933480. (http://opendx.npaci.edu/mail/opendx-users/2003.06/msg00046.html)
I have traced this to line 1337 of import_ss.c, in the function
_dxf_isnumber(). The data
value has just been parsed as a float. Then, if no decimal
point is found, the float is converted to an int:
*d = (int)f;
But it's too late because there's not enough precision in
the float to represent large ints. Re-parsing the input as an
integer fixes it:
sscanf(p+(*p=='$'), "%d", d);
I have verified this on my local installation.
Cheers,
Joel
===============================================================
Joel Richardson, Ph.D. [EMAIL PROTECTED]
The Jackson Laboratory Phone: (207) 288-6435
600 Main Street Fax: (207) 288-6132
Bar Harbor, Maine 04609 URL: www.informatics.jax.org
===============================================================