JirR02 88e0b5ed69 Converted everything to orgmode
converted everything to orgmode and added solution to the README files
2025-03-31 08:40:43 +02:00
..
2025-03-31 08:40:43 +02:00

Task 3: Rounding

Task

Implement the following rounding function that rounds a 64-bit floating point number (type double) to the nearest 32-bit integer (type int). You may assume that the type double complies with the IEEE standard 754. The function is only required to work correctly if the nearest integer is in the value range of the type int, otherwise, the return value of the function is undefined.

Note: Usage of library rounding functions (standard or others) is not allowed.

// PRE: x is roundable to a number in the value range of type @int@
// POST: return value is the integer nearest to x, or the one further
// away from 0 if x lies right in between two integers.
int round_number(double x);

Write your solution in rounding.h.

Hint: In C++, when you convert a float or double to an int, the fractional part gets cut off (truncated). Think about how you can use the truncated number to solve the exercise.

Solution

#pragma once

// PRE: x is roundable to a number in the value range of type int
// POST: return value is the integer nearest to x, or the one further
//       away from 0 if x lies right in between two integers.
int round_number(double x) {
  int res;
  if (x < 0)
    res = x - 0.5;
  else
    res = x + 0.5;
  return res;
}

Made by JirR02 in Switzerland 🇨🇭