Округление является двоичным, а не десятичным.Когда вы смотрите на результат в десятичном формате, он кажется неправильным, потому что вы ожидаете, что он округляет конечную десятичную цифру, но это не то, что он делает.Он округляет последний двоичный бит.
Я ввел 1,57079632679489661923132169163975 в качестве константы для PI / 2 в указанную вами ссылку, и он выдал правильный результат 1,5707964.
Сравните 64-битное представлениев 32-битное представление:
1 .1001001000011111101101010100010001000010110100011000
1 .10010010000111111011011
Обрезанная часть начиналась с 1, поэтому для правильного округления требовалось увеличить 32-битный результат.