/// @file   main.cpp
/// @author Jens Gruschel
/// @date   2016-07-14
/// Test unterschiedlicher Rundungsfunktionen

#include <iostream>
#include <cmath>

using std::cout;
using std::endl;

void testRounding(double value)
{
    // Wert unveraendert ausgeben
    cout << "Gleitkommazahl: " << value << endl;

    // runden mittels Cast (nur fuer positive Zahlen)
    cout << "cast:  " << int(value + 0.5) << endl;

    // runden mittels Cast (auch fuer negative Zahlen)
    cout << "cast': "<< int(value < 0.0 ? value - 0.5 : value + 0.5) << endl;

    // runden mittels Funktion "round"
    cout << "round: " << round(value) << endl;

    // runden mittels Funktion "floor"
    cout << "floor: " << floor(value) << endl;

    // runden mittels Funktion "ceil"
    cout << "ceil:  " << ceil(value) << endl;

    // runden mittels Funktion "trunk"
    cout << "trunc: " << trunc(value) << endl << endl;
}

int main()
{
    // Test mit verschiedenen Werten durchfuehren
    testRounding(1.2);
    testRounding(2.5);
    testRounding(3.7);
    testRounding(-0.6);

    return 0;
}