С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Сравнение чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан текст, произвольной длины. Определить символ, встречающийся в тексте с максимальной частотой http://www.cyberforum.ru/cpp-beginners/thread1085626.html
Помогите написать программы на языке С++,с помощью scanf,printf и т.д. 1)Дан текст, произвольной длины. Определить символ, встречающийся в тексте с максимальной частотой. 2)Дана матрица размером n...
C++ Работа с таблицей в С++ Вот условие: Ввести в консоли строку из пяти символов, а затем прибавить к коду каждого символа 10, вывести новые символы на экран. http://www.cyberforum.ru/cpp-beginners/thread1085603.html
C++ Не работает пример умножения и деления дробей
Я переводил программу из паскаля, на паскале переменные в формате Реал а в си++ в Интежер. Так сделано потому что не смог преобразовать RealToStr в си++. Использую GCC (Code Blocks) Win 7. Пример с...
Что будет выведено на экран в результате выполнения приведенного фрагмента кода? C++
Что будет выведено на экран в результате выполнения приведенного фрагмента кода? int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; return;...
C++ Найти среднее арифметическое элементов, не являющихся простыми числами, но при этом стоящих на чётных местах http://www.cyberforum.ru/cpp-beginners/thread1085562.html
Найти среднее арифметическое элементов, не являющихся простыми числами, но при этом стоящих на чётных местах.
C++ 1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными э 1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элементами, удаленная строка заполняется 0 и... подробнее

Показать сообщение отдельно
gromo
372 / 271 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
30.01.2014, 20:10
Suares,
Если передать функциям меньше и больше параметр orEqual == true, то они превращаются в меньше либо равно, больше либо равно соответственно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cmath>
 
template <typename T> bool dEquals(T left, T right, T precision)
{
    return (fabs(left - right) < precision);
}
template <typename T> bool dLess(T left, T right, T precision, bool orEqual = false)
{
    if(dEquals(left, right, precision)) // За рамками точности, считаем числа равными
        return orEqual;
    return (left < right);
}
template <typename T> bool dGreater(T left, T right, T precision, bool orEqual = false)
{
    if(dEquals(left, right, precision))
        return orEqual;
    return (left > right);
}
 
int main()
{
    double f = 0.333333339, g = 1.0/3.0;
    std::cout << std::boolalpha << "f == g -- " << (f == g) << std::endl;
    // С точностью 8 знаков после запятой - числа равны
    std::cout << "dEquals(f,g) -- "  << dEquals(f,g,0.000001) << std::endl;
    // А вот с точностью 9 знаков уже не равны
    std::cout << "dEquals(f,g) -- "  << dEquals(f,g,0.000000001) << std::endl;
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.