• Как исправить ошибку линковая файлов С++ в VS 2017(LNK2005)?

    @assembled
    1. В *.h файлах должны быть только заголовки функций и объявления глобальных переменных.

    2. *.cpp файлы не пишут в #include'ах ( в них пишут только *.h ) , *.cpp компилируются отдельно и потом полученные объектные файлы линкуются вместе в один исполняемый.

    3. Для избежания включения несколько раз одного и того же файла используйте #ifndef:
    // файл MyForm.h
    #ifndef __MYFORM__
    #define __MYFORM__
    // здесь содержимое файла
    #endif
    Ответ написан
    4 комментария
  • Как посчитать количество знаков после запятой у флоат?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Тут основная проблема в том, что для компьютера, при использовании чисел одинарной точности, 4.63710 = 100.1010001100010010011012 = 4.636999607110, то есть точно посчитать количество десятичных знаков после запятой невозможно. Приблизительно можно считать беря дробную часть числа. Если эта часть близка к нулю (r < epsilon) или к единице (1-r < epsilon), то, с какой-то вероятностью можно сказать, что мы посчитали длину дробной части. Если нет - то умножаем дробную часть на 10, увеличиваем счётчик и проверяем сначала.
    Ответ написан
    8 комментариев