2014-11-13 2 views
-2

Я хочу выполнить анализ граничных значений в программе, которая принимает 3 поплавковых переменных в качестве входных данных и возвращает наибольшую из них. Там не указан диапазон, поэтому я налагаю диапазон на тот, который подразумевается no. байтов, используемых для хранения переменных с плавающей запятой, в моем случае 4 байта. Следовательно, мой диапазон плавания составляет -3,4 + 38 до + 3,4 + 38Выполнение тестирования граничных значений по диапазону с плавающей запятой

Проблема: в граничном значении u проверьте эти точки: скажем, ваш диапазон: 1 < = x < = 10, точки, которые необходимо проверить : {1, 2, 9, 10}

В моем примере с плавающей точкой я не могу понять, какое значение стоит чуть выше -3.4 + 38, а значение падает ниже + 3.4e + 38. кто-то помогает здесь. Я не получаю это плавающее представление.

ответ

0

Предположим, что вы программируете на 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, еще меньше).

Смежные вопросы