Now the point seems clear Tomasz.
Thank you very much for you kind support and great job.

2009/3/14 Tomasz Janeczko <[email protected]>

>    Hello,
>
> The rounding is correct and actually, it is not rounding at all it is just
> formatting
> of floating point number. So it is for "display only". The underlying
> numbers
> remain the same regardless of how many digits you display.
> As to number formatting is entirely done by C runtime library (MSVCRT.DLL),
> made by Microsoft
> and used in almost every Windows application.
> Read about sprintf there:
> http://msdn.microsoft.com/en-us/library/ybk95axf(VS.80).aspx
>
> There are different methods of rounding (always up, always down, unbiased)
>
> The way printf and sprintf functions do rounding will often depend upon the
> system's C `sprintf' subroutine.
> On many OSes including Windows, `sprintf' rounding
>  is "unbiased," which means it doesn't always round a trailing `.5' up,
>  contrary to naive expectations.  In unbiased rounding, `.5' rounds to
>  even, rather than always up, so 1.5 rounds to 2 but 4.5 rounds to 4.
>  The result is that if you are using a format that does rounding (e.g.,
>  `"%.0f"') you should check what your system does.
>
> If you need "always up" rounding use
> floor( value + 0.5 );
>
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
>
>  ----- Original Message -----
> *From:* İlhan Ketrez <[email protected]>
> *To:* [email protected]
>   *Sent:* Saturday, March 14, 2009 7:04 AM
> *Subject:* Re: [amibroker] Incorrect rounding in Amibroker
>
> Thanks a lot, but...
>
> When we tell
>
> AddColumn(*H*,"H",1.4);
>
> AddColumn
> (*L*,"L",1.4);
>
> AddColumn
> (mp,"mp",1.4);
> to Amibroker, the answers are correct. (The right column below)
> However, when we don't tell that way, rounding still seems to be incorrect.
>
> We should format first and then round with excel...
> I'll appreciate any additional comments.
>
>       Ticker Date/Time H L with excel: mp Ticker Date/Time H L mp YKBNK
> 10.03.2009 1.55 1.5 1.525 1.52 YKBNK 10.03.2009 1.5500 1.5000 1.5250 YKBNK
> 11.03.2009 1.56 1.51 1.535 1.53 YKBNK 11.03.2009 1.5600 1.5100 1.5350
>
> On Sat, Mar 14, 2009 at 2:49 AM, Tomasz Janeczko <[email protected]>wrote:
>
>>
>> Read the manual first http://www.amibroker.com/guide/h_exploration.html
>> Rounding is correct and user-definable. If you want 3 decimal digits -
>> just tell AB this way:
>>
>> AddColumn(mp,"mp", 1.3 );
>>
>> Best regards,
>> Tomasz Janeczko
>> amibroker.com
>>
>>  ----- Original Message -----
>> *From:* İlhan Ketrez <[email protected]>
>> *To:* [email protected]
>>  *Sent:* Friday, March 13, 2009 9:35 PM
>> *Subject:* [amibroker] Incorrect rounding in Amibroker
>>
>>   Dear friends,
>>
>> Amibroker seems to be rounding the results different than it should be.
>> Below is a piece of the results.
>> The prices have two digits after dot. (h+l)/2 sometimes has 2 digits,
>> sometimes 3 after dot.
>>
>> Amibroker sometimes rounds the result up, sometimes down.
>>
>>        Ticker Date/Time H L (h+l)/2
>> Excel Calc. (h+l)/2
>> Amibroker Calc. YKBNK 23.02.2009 1.67 1.63 1.65 1.65 YKBNK 24.02.2009
>> 1.64 1.58 1.61 1.61 YKBNK 25.02.2009 1.69 1.65 1.67 1.67 YKBNK 26.02.2009
>> 1.70 1.65 1.675 1.67 YKBNK 27.02.2009 1.66 1.61 1.635 1.63 YKBNK
>> 02.03.2009 1.63 1.58 1.605 1.61 YKBNK 03.03.2009 1.62 1.59 1.605 1.61
>> YKBNK 04.03.2009 1.64 1.60 1.62 1.62 YKBNK 05.03.2009 1.62 1.53 1.575
>> 1.58 YKBNK 06.03.2009 1.57 1.52 1.545 1.55 YKBNK 09.03.2009 1.59 1.49
>> 1.54 1.54 YKBNK 10.03.2009 1.55 1.50 1.525 1.52 YKBNK 11.03.2009 1.56
>> 1.51 1.535 1.53 YKBNK 12.03.2009 1.55 1.46 1.505 1.5 YKBNK 13.03.2009
>> 1.60 1.54 1.57 1.57
>>
>>
>> I may also send you the complete data if needed. You may also see easily
>> with your own data with the following code:
>>
>>
>> MP= (*H*+*L*)/2;
>>
>> *Filter*=1;
>>
>> AddColumn
>> (*H*,"H");
>>
>> AddColumn
>> (*L*,"L");
>>
>> AddColumn
>> (mp,"mp");
>>
>>
>>
>> Thanks in advance for your help.
>>
>> Ilhan
>>
>>
>  
>

Reply via email to