-2

入力として 3 つの float 変数を取り、それらのうち最大のものを返すプログラムで境界値分析を実行したいと考えています。範囲が指定されていないため、範囲は no によって暗示される範囲に設定されます。float 変数を格納するために使用されるバイトのうち、私の場合は 4 バイトです。したがって、私の float 範囲は -3.4+38 から +3.4+38 になります。

問題は次のとおりです。境界値でこれらのポイントをチェックします。範囲が 1<= x <= 10 であるとします。チェックする必要があるポイントは {1, 2, 9, 10} です。

私の float の例では、どの値が -3.4+38 のすぐ上にあり、どの値が +3.4e+38 のすぐ下にあるかを理解できません。誰かがここで助けてくれます。このフロート表現が得られません。

4

1 に答える 1

0

C でプログラミングしていると仮定しましょう。他の高水準言語は、概念を同様の表記法にマッピングする必要があります。

floatすぐ上の値-3.4e+38fnextafterf(-3.4e+38f, 0)です。floatすぐ下の値3.4e+38fnextafterf(3.4e+38f, 0)であり、それがより明確であることがわかった場合は、前の値の反対として計算することもできます。

関数がない場合は、-3.399999749e+38と をそれぞれ入力して、これらの定数を取得することもできます。3.399999749e+38nextafterf


3.4e+38fは最大floatではなく、大まかな概算に過ぎないことに注意してください(3.4+38、または約 41.4、さらにそれ以下)。

于 2014-11-13T17:48:09.807 に答える