From 261a2c01d187dd15361ee34e351a3661ae58643f Mon Sep 17 00:00:00 2001 From: Lukas Jiriste Date: Thu, 17 Oct 2024 16:08:03 +0200 Subject: [PATCH] Fix multiplication rounding --- ex02/Fixed.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ex02/Fixed.cpp b/ex02/Fixed.cpp index 35b37bf..502ae74 100644 --- a/ex02/Fixed.cpp +++ b/ex02/Fixed.cpp @@ -111,7 +111,14 @@ Fixed Fixed::operator*(const Fixed &other) const { Fixed res; - res.m_num = (m_num * other.m_num) >> point_pos; + res.m_num = m_num * other.m_num; + if (res.m_num & (1 << (point_pos - 1))) + { + res.m_num >>= point_pos; + ++res.m_num; + return (res); + } + res.m_num >>= point_pos; return (res); } -- 2.30.2