現在、私は、Cでいくつかの2Dジオメトリを実行しています。これらの行にはすべての種類の傾斜があります:0.001〜1000(例では、わかりません)。C浮動小数点:2Dジオメトリ(線)のためにそれらを回る方法
私は現在まで浮動小数点数を使用していましたが、値が非常に小さいかどうか心配する必要はありませんでした(浮動小数点数は1e-3として1e-3を丸めなしで格納する)か、 1e3として保存されます)、どちらの場合でも適切な場合は精度がほとんど損なわれません。
しかし、私は浮動小数点数を使わずに、整数で試してみたいと思っています。私の計算の精度を維持する方法?私は坂が大きくなるか小さくなるかを告げるフラグをつけることができ、大きな斜面の10分の1と小さい斜面を考慮すると、小さな斜面では丸めが問題なく、大きな斜面ではあふれがない。しかし、それは頭痛のように感じます。
基本的には、傾き0.2と0.4を区別できる必要があります。また、オーバーフロー側で1000と2000の勾配を区別する必要があります(ここで1000の整数がオーバーフローすると仮定します)。
他のアイデアはありますか?整数
struct slope {
int delta_y;
int delta_x;
};
の対として
立ち上がりと実行の両方を保存する以外にも、 –
「ダブル」を使用し、不正確さで生きていますか?なぜ15桁以上の精度の重要な数字が必要なのでしょうか?その正確さの量は、ここから冥王星への距離をセンチメートルで測定するのに十分です。 – Bathsheba
常に計算上のジオメトリを実行する際には、不合理な数字があるので、常に不正確さがあります。 –