Why does Blueprint float round perform unconventionally

I was doing a bit of a branch-less negative/even bound pattern, and I came across a peculiar choice from UE4. When you round in 0.5 it will round up to one as expected, however, when you round from -0.5 you get 0. Most rounding tooling generally follows the RoundHalfFromZero. For example cmath round will round to -1. At first I thought I was crazy, or used the wrong round in blueprints. Is there a configuration in where I can set round to use RoundHalfFromZero as the backend instead of RoundHalfToEven

Imgur

EDIT Current Description

310291-docs.png

I always thought it was ‘round up’.

There are 4 different functions for converting float to integer in UE4: Ceil, Floor, Round and Truncate.
They work like this:

  • Ceil always converts to the higher value (-1.6 will become -1, 1.6 will become 2);
  • Floor always converts to the lower value (-1.6 will become -2, 1.6 will become 1);
  • Round always converts to the higher absolute value (-1.6 will become -2, 1.6 will become 2);
  • Truncate always converts to the lower absolute value (-1.6 will become -1, 1.6 will become 1);
2 Likes