Проверка числа на целочисленность С++

398
19 января 2019, 18:30

Пишу программу на статистику, и мне необходимо посчитать квартили. Проблема состоит в том что всё время проходит установка else, и непонятно, почему код не работает:

В моём случае n=130 и на i=2 и i=4должно срабатывать

tmp == (ceil(tmp)-1) округляем к большему и отнимаем единицу

void KvartilC(vector<int>&X,float n)
{
    for(int i=1;i<=4;i++)
    {
        float tmp = (i*n) / 4; // если число целое то подходит, если нет то 
                                                            //квартиля нет
        if (tmp == (ceil(tmp)-1)) // проверка на целочисельность
        {
            cout <<"Qvartil_"<<i<<" : "<< X[tmp]<< endl;
        }
        else
        {
            cout << "Ne isnuje Qvartila_"<<i<< endl;
        }
    }
}
Answer 1

А просто посчитать и посмотреть что мешает?

float n = 130;
for(int i = 1; i <= 4; i++)
{
    float tmp = (i*n) / 4;
    cout << "tmp = " << tmp << "  ceil.. = " << (ceil(tmp)-1) << endl;
}

дает

tmp = 32.5  ceil.. = 32
tmp = 65  ceil.. = 64
tmp = 97.5  ceil.. = 97
tmp = 130  ceil.. = 129

Еще вопросы есть? :) Прочтите внимательно, как ceil выполняет округление...

READ ALSO
Conan + CMake C++

Conan + CMake C++

Хочу добавить в проект библиотеку POCO, попытался сделать это через Conan и что получилосьЧтобы импортировать ее в проект, нужно указать полный...

143
статический виртуальный метод в C++ - возможно ли

статический виртуальный метод в C++ - возможно ли

у меня есть функция, которая одинаково обрабатывает данные для разных типов данных, чтобы не плодить лишнего кода решил обойтись шаблонами,...

144
Можно ли из кода C++ вызвать функцию на Swift?

Можно ли из кода C++ вызвать функцию на Swift?

При разработке под iphone на Swifte возникла необходимость вызвать функцию на C++С этой задачей легко справились

155