浮動小数点精度

ハイフォン

2D直線の方程式を次の形式で計算するメソッドを書いています。 a*x+b*y=1

//Given two points, find the equation of the line by solving two linear equations and then test the result. (For simplicity, assume that delta !=0 here)

private boolean solveAndRetry(float x1,float y1, float x2,float y2) {
        float delta = x1 * y2 - x2 * y1;
        float deltaA = y2 - y1;
        float deltaB = x1 - x2;

        float a = deltaA / delta;
        float b = deltaB / delta;
        float c = 1;

        //test
        if (a * x2 + b * y2 == c) {
        System.out.println("ok");
            return true;
        }
        else {
            System.out.println(a * x2 + b * y2-c);
            return false;
        }
    }

私がそれを実行したとき、私はすべての「OK」があるだろうと思っていましたが、そうではなく、理由はわかりません

public static void main(String[] args) {
        for (float x = 0; x < 10; x += 0.01f) {
            solveAndRetry(1, -1, x, 2);
        }
    }

結果のいくつかの行は次のとおりです

ok
ok
ok
ok
ok
ok
ok
ok
-5.9604645E-8
ok
-5.9604645E-8
ok
ok
ok
1.1920929E-7
ok
ok
-5.9604645E-8
ok
ヘンリー

Afloatの精度は10進数で6〜7桁です。丸め誤差は避けられないため、結果は可能な限り良好です。

通常、浮動小数点数が等しいかどうかを比較することはありません。x == y常に間隔を使用して比較を使用する代わりに、次のようにします。

Math.abs(x - y) < eps

適切に選択されたepsの場合。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python浮動小数点精度浮動小数点

分類Dev

Pythonの倍精度浮動小数点値?

分類Dev

Javaの半精度浮動小数点

分類Dev

浮動小数点精度のgolang

分類Dev

Java浮動小数点精度の問題

分類Dev

Java浮動小数点精度の問題

分類Dev

Javaの倍精度浮動小数点数

分類Dev

Swiftの高精度浮動小数点数

分類Dev

Xの浮動小数点精度

分類Dev

浮動小数点の精度-C ++ 03

分類Dev

浮動小数点数の精度

分類Dev

TensorFlowの浮動小数点の精度

分類Dev

Java浮動小数点の表示精度

分類Dev

浮動小数点精度の倍精度と浮動小数点の違い

分類Dev

Python 3浮動小数点小数点/精度

分類Dev

小数点以下の整数精度のないPython浮動小数点精度

分類Dev

Pythonでの倍精度/浮動小数点型の精度

分類Dev

浮動小数点の小数精度を確認します

分類Dev

python : Unicodeを小数精度で浮動小数点に変換する

分類Dev

単精度浮動小数点を半精度浮動小数点に変換します

分類Dev

Pythonで浮動小数点の精度を動的に変更する

分類Dev

PowerPCGCC浮動小数点命令

分類Dev

浮動小数点の例外?

分類Dev

Spring XMLでの整数、倍精度浮動小数点数、浮動小数点数、文字列などの宣言

分類Dev

半精度浮動小数点数(バイト)をSwiftで浮動小数点数に変換します

分類Dev

80ビット長倍精度浮動小数点数の浮動小数点距離

分類Dev

浮動小数点の精度を失うことなく、浮動小数点を整数に保存します

分類Dev

浮動小数点変数のbash制限精度

分類Dev

異なる言語での浮動小数点精度

Related 関連記事

ホットタグ

アーカイブ