Re: rounding problems

Поиск
Список
Период
Сортировка
От Justin
Тема Re: rounding problems
Дата
Msg-id 482B09A8.4090806@emproshunts.com
обсуждение исходный текст
Ответ на Re: rounding problems  (Sam Mason <sam@samason.me.uk>)
Ответы Re: rounding problems
Список pgsql-general
I have forgotten how much i hate C++

Its not doing what you say it would but it did do other odd ball things.  I miss my foxpro :-(. 

Plus its not holding 15 precision points

#include <stdio.h>
#include <cmath>

int main()
{
        double a = 0.1;
        //double b = 1000;
        double c = 100000000;
        double d ; //= a * b;
        for( int i = 1 ; i < 10 ; i++)
        {   
            d = pow(a,i)+ c ;
            printf("%.10f\n", d);
            d = d-c ;
            printf("%.10f\n", d);
        }

        return 0;
}

Sam Mason wrote:
On Tue, May 13, 2008 at 02:36:18PM -0400, Justin wrote: 
Double holds 15 places which is the highest value of precision it can 
maintain before rounding occurs.

Is is limit less no, but what is?

Practically speaking  taking a vale 0.000,000,000,000,001 aka
1 trillionth of anything,   
But remember that if you add this value onto a large number and then
take off the large number the result will be zero.
 (0.000,000,000,01 + 1,000,000) - 1,000,000  ==>  0 0.000,000,000,01 + (1,000,000 - 1,000,000)  ==>  0.000,000,000,01

In general, operations on floating point numbers will increase their
errors.
 
i view the problem solved for 98% of problems.   
Floating point math is good for most problems, hence why most languages
expose the abstraction.

 Sam
 

В списке pgsql-general по дате отправления:

Предыдущее
От: Karsten Hilbert
Дата:
Сообщение: Re: ranked subqueries vs distinct question
Следующее
От: Ивайло Гелов
Дата:
Сообщение: Re: Strange behaviour - performance decreases after each TRUNCATE