Выполнение граничного тестирования на поплавке
Я хочу выполнить анализ граничных значений в программе, которая принимает 3 переменные с плавающей запятой в качестве входных данных и возвращает наибольшее из них. Диапазон не указан, поэтому я навязываю диапазон, который подразумевается в no. байтов, используемых для хранения переменных с плавающей запятой, в моем случае 4 байта. Следовательно, мой диапазон плавания становится от -3,4+38 до + 3,4+38
Проблема в следующем: в граничном значении u проверьте эти точки: скажем, ваш диапазон: 1<= x <= 10, точки, которые вам нужно проверить: {1, 2, 9, 10}
В моем примере с плавающей точкой я не могу понять, какое значение чуть выше -3,4+38, а какое - чуть ниже + 3,4e+38. кто-то поможет здесь. Я не понимаю это представление с плавающей точкой.
1 ответ
Предположим, что вы программируете на C. Любой другой язык высокого уровня должен отображать понятия в аналогичные обозначения.
float
значение чуть выше -3.4e+38f
является nextafterf(-3.4e+38f, 0)
, float
значение чуть ниже 3.4e+38f
является nextafterf(3.4e+38f, 0)
и вы также можете вычислить его как противоположность предыдущему, если вы найдете это более понятным.
Вы также можете получить эти константы, набрав -3.399999749e+38
а также 3.399999749e+38
соответственно если у вас нет функции nextafterf
,
Обратите внимание, что 3.4e+38f
не самый большой float
только приблизительное приближение к нему (и 3,4+38, или приблизительно 41,4, даже меньше).