Thank you for your detailed review.
The result of Math.round may be different from other programming languages. This is because there are various round half-down/up manners  and Math.round uses some different round manner. So, we can get a mismatch as follows:
hyunsik=> select round(-5.5);
MariaDB [(none)]> select round(-5.5);
| round(-5.5) |
| -6 |
1 row in set (0.00 sec)
Especially, we could face the result mismatch problem when we use a vectorized engine based on C++. This patch also contains the workaround code. I missed the detail comment for this reason. Since this workaround code may make other guys confuse, I'll add some notes on Round class.
In addition, in my opinion, succeeded hunks are not problem because it just means somewhat difference of diff lines but success. If we have to rebase all patches that cause even success hunk, contributors will be exhausted due to too frequent rebase.