Еще непонятность с 'double'.
От: Аноним  
Дата: 16.07.14 11:26
Оценка:
ОК, Разовью интерес, вроде ни где не ошибся в коде ниже.


#include <iostream>
#include <iomanip>      

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    double p = 0.01;

    long double ddd=0;
 
//    for ( double v = 0.0; v < 2.0 ; v += p ){
    
    double v = 0.0;

    while ( v < 2.0 ){
        int i = (int)( v / p + 0.5);
        double d1 = (i-1) * p;

        double d = d1 + p;
                
        if ( v != d )
            cout << "i=" << i << scientific << setprecision(60) << " v=" << v << scientific << setprecision(60) << " d=" << d << endl;
        v = d;
        v = v + p;
    }

    return 0;
}


Жаль конечно что не дает постить ответы в тему.
Re: Еще непонятность с 'double'.
От: McQwerty Россия  
Дата: 16.07.14 12:36
Оценка:
А>ОК, Разовью интерес, вроде ни где не ошибся в коде ниже.

У меня вот так:

i=7 v=7.0000000000000007000000000000000000e-02 d=6.9999999999999993000000000000000000e-02
i=8 v=7.9999999999999988000000000000000000e-02 d=8.0000000000000002000000000000000000e-02
i=11 v=1.0999999999999999000000000000000000e-01 d=1.1000000000000000000000000000000000e-01
i=16 v=1.6000000000000003000000000000000000e-01 d=1.6000000000000000000000000000000000e-01
i=19 v=1.9000000000000003000000000000000000e-01 d=1.9000000000000000000000000000000000e-01
i=22 v=2.2000000000000003000000000000000000e-01 d=2.2000000000000000000000000000000000e-01
i=30 v=3.0000000000000004000000000000000000e-01 d=2.9999999999999999000000000000000000e-01
i=37 v=3.7000000000000005000000000000000000e-01 d=3.7000000000000000000000000000000000e-01
i=43 v=4.3000000000000005000000000000000000e-01 d=4.2999999999999999000000000000000000e-01
i=49 v=4.9000000000000005000000000000000000e-01 d=4.8999999999999999000000000000000000e-01
i=59 v=5.9000000000000008000000000000000000e-01 d=5.8999999999999997000000000000000000e-01
i=72 v=7.2000000000000008000000000000000000e-01 d=7.1999999999999997000000000000000000e-01
i=85 v=8.5000000000000009000000000000000000e-01 d=8.4999999999999998000000000000000000e-01
i=97 v=9.7000000000000008000000000000000000e-01 d=9.6999999999999997000000000000000000e-01
i=117 v=1.1700000000000002000000000000000000e+00 d=1.1699999999999999000000000000000000e+00
i=142 v=1.4200000000000002000000000000000000e+00 d=1.4199999999999999000000000000000000e+00
i=168 v=1.6800000000000002000000000000000000e+00 d=1.6799999999999999000000000000000000e+00
i=193 v=1.9300000000000002000000000000000000e+00 d=1.9299999999999999000000000000000000e+00

Идея-то в чём?

А>Жаль конечно что не дает постить ответы в тему.

Вроде, можно.
Re[2]: Еще непонятность с 'double'.
От: Mr.Delphist  
Дата: 17.07.14 09:07
Оценка:
Здравствуйте, McQwerty, Вы писали:

А>>Жаль конечно что не дает постить ответы в тему.

MQ>Вроде, можно.

Сталкивался с бредовым режимом этого сайта, когда анониму разрешено создавать тему на тематическом форуме, но отвечать в темах (в т.ч. своей) — нельзя. Юзабилити — over 9000, пришлось только из-за этого регаться (до того много лет читал RSDN анонимом и плюс дискутировал где можно, затем началось закручивание секурности)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.