THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/06/2009 at 12:46, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 11.027
Platform: Mac ;
Language(s) : C.O.F.F.E.E ;
---------
Hi,
I'm translating a timer that returns the date in seconds from a consistent start time 70 years ago. It creates a 10 digit number. I tack on a few more digits for my product key manipulation.
Problem is, the values I get back are inconsistent. I understand that an integer has a range limit below my number, but even when I convert everything to floats, I run into problems after 12 digits. I've duplicated the problem in this simple COFFEE expression.
Any ideas?
Thanks,
Graham
> main(doc,op) \> { \> var vNum = 01034121024.0; // This float prints OK on next lines \> println("vNum = ", vNum); \> println("int(vNum = ", int(vNum) ); \> println("float(vNum) = ", float(vNum) ); \> println(" "); \> \> var vNum = 010341210240.0; // This float prints incorrectly on next lines \> println("vNum = ", vNum); \> println("int(vNum = ", int(vNum) ); \> println("float(vNum) = ", float(vNum) ); \> println(" "); \> \> var vNum = 01034121024; // This integer prints incorrectly (may \> //be over 2,147,483,648 integer limit even \> //though it starts with a zero... still 11 digits) \> println("vNum = ", vNum); \> println("int(vNum = ", int(vNum/100) ); \> println("float(vNum) = ", float(vNum/100) ); \> println(3.4E38); // Float limit seems OK \> println(2147483649); // This laps to (-) by two since int limit is ...648 \> println(2147483647); // This int, at limit, prints this number as expected \> \> println("-------------------------------------------------------"); \> }