почему этот код производит вывод в терминах экспоненциального для больших значений - PullRequest
0 голосов
/ 16 февраля 2020

Почему код (A) выводится в виде экспоненциального для больших значений.

для например: - input(in)=1400000 output:-1.2375e+006(without using variable k).

Целое число " в "обозначает доход в рупиях". Найти net доход. Доход net рассчитывается путем вычитания общего налога (также называемого уменьшением налога) из общего дохода.

long long int in;
        cin>>in;
        long long int a,b,c,d,e;
        a=(250000)*0.05;
        b=(250000)*0.10+a;
        c=(250000)*0.15+b;
        d=(250000)*0.20+c;
        e=(250000)*0.25+d;

код без использования переменной (long long) k

code (A )

        cout<<1LL*in<<endl;
        else if(in<=500000)
        cout<<1LL*(in-((in-250000)*0.05))<<endl;
        else if(in<=750000)
        cout<<1LL*(in-a-((in-500000)*0.10))<<endl;
        else if(in<=1000000)
        cout<<1LL*(in-b-((in-750000)*0.15))<<endl;
        else if(in<=1250000)
        cout<<1LL*(in-c-((in-1000000)*0.20))<<endl;
        else if(in<=1500000)
        cout<<1LL*(in-d-((in-1250000)*0.25))<<endl;
        else
        cout<<1LL*(in-e-((in-1500000)*0.30))<<endl;

, тогда как input(in)=1400000 output:-1237500(using variable (long long)k)

код с использованием (длинный длинный) k

код (B)

        long long int k;
        if(in<=250000)
          k=in;
        else if(in<=500000)
          k=(in-((in-250000)*0.05));   
        else if(in<=750000)
          k=(in-a-((in-500000)*0.10));
        else if(in<=1000000)
          k=(in-b-((in-750000)*0.15));
        else if(in<=1250000)
          k=(in-c-((in-1000000)*0.20));
        else if(in<=1500000)
          k=(in-d-((in-1250000)*0.25));
        else 
          k=(in-e-((in-1500000)*0.30));
        cout<<k<<endl;

...