Существует ли какая-либо стандартная функция, которая может помочь мне сравнить max()
или min()
между двумя значениями с плавающей запятой?
Я написал реализацию с фиксированной запятой для этой функции min()
и max()
от типа q0s32
до q32s0
(33 типа).
Но я хочу проверить потерю точности моей функции с помощью функций std:min()
и std::max()
. Но результаты не очень хороши для функций std.
Я пытался таким образом, но это не сработало для меня, так как результат не соответствует ожиданиям.
Код:
float num1 = 4.5000000054f;
float num2 = 4.5000000057f;
float resf = std::max(num1,num2);
printf("Result is :%20.15f\n",resf);
printf("num1 :%20.15f and num2 :%20.15f\n",num1,num2);
Выход:
Result is : 4.500000000000000
num1 : 4.500000000000000 and num2 : 4.500000000000000