No, you don't understand. Did you read "Range and Precision table" http://en.wikipedia.org/wiki/IEEE_754-1985 carefully enough?
32 bit floating point has 24 bit mantissa and 8 bit exponent Now calculate 2^24 . It is: 16777216 Any *INTEGER* larger than that is subject to rounding in IEEE standard. Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: Ton Sieverding To: [email protected] Sent: Thursday, April 02, 2009 3:40 PM Subject: Re: [amibroker] String problem or what am I doing wrong ? Thanks Tomasz. Yes I understand that the 32bit standard has it's limitations. But why am I getting correct answers for all other values ? Why is just '1' giving me a problem ? Has this to do with precision and will I always get a zero for '1' where other values give me the correct result ? Because that's what I see but do not understand. If I should have a proper answer for that, it's rather simple to modify the result accordingly with string manipulation ... Problem with DateNum() for me is the difference in result before and after 2000. After 2000 gives me '1YY' etc. before 2000 'YY' ... So 2004 becomes '104'. For 1950 I am getting '50' ... Of course there is a solution for that also ... Regards, Ton. ----- Original Message ----- From: Tomasz Janeczko To: [email protected] Sent: Thursday, April 02, 2009 2:58 PM Subject: Re: [amibroker] String problem or what am I doing wrong ? All numbers in AB are industry standard 32-bit FLOATING point which gives you 7 significant digits. See "Range and Precision table" here: http://en.wikipedia.org/wiki/IEEE_754-1985 So you should use YYYMMDD encoding instead (the same as DateNum() is using) Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: "amsiev" <[email protected]> To: <[email protected]> Sent: Thursday, April 02, 2009 2:22 PM Subject: [amibroker] String problem or what am I doing wrong ? > DatStr = "20040101"; > _TRACE("Datum "+DatStr); > DatNum = StrToNum(DatStr); > _TRACE("Datum "+WriteVal(DatNum,0,False)); > > First Trace gives : 20040101 Day=01 > But second gives : 20040100 Day=00 > > No do the same with following string : > DatStr = "20040102"; > > Both Traces give 20040102. Only when Day=01 I have the above > problem. Something wrong or what am I doing wrong ? > Please do not come with Date solutions. I know that ... > > Regards, Ton. > > > > ------------------------------------ > > **** IMPORTANT PLEASE READ **** > This group is for the discussion between users only. > This is *NOT* technical support channel. > > TO GET TECHNICAL SUPPORT send an e-mail directly to > SUPPORT {at} amibroker.com > > TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at > http://www.amibroker.com/feedback/ > (submissions sent via other channels won't be considered) > > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: > http://www.amibroker.com/devlog/ > > Yahoo! Groups Links > > >
