私は、2つの座標点(x、y)間の距離を単純に計算するクラス用のプログラムを作成しています。値の計算を防止する値タイプ?
differenceofx1 = x1 - x2;
differenceofy1 = y1 - y2;
squareofx1 = differenceofx1 * differenceofx1;
squareofy1 = differenceofy1 * differenceofy1;
distance1 = sqrt(squareofx1 - squareofy1);
距離を計算するとうまくいきます。しかし、結果が正方形でない平方根の平方根であるか、または入力順序のためにx1とx2/y1とy2の差が負であるような状況があります。距離が0.00000の場合は、明らかに0以上です。すべての変数にdoubleを使用していますが、代わりにfloatを使用して負の可能性を持たなければなりませんか?精度も8に設定しましたが、なぜ正しく計算されないのか分かりません。
私は質問の単純さのために申し訳ありません、私は初心者よりも少しです。
通常、距離の場合は、入力の順序が「問題ではありません」のため、distance1 = sqrt(squareofx1 + squareofy1);「 – fefe
」またはx1とx2/y1とy2の差が負です。正方形は正の値になります。 – tkausl
'float'は単精度浮動小数点値です。 'double'は倍精度浮動小数点値です。どちらの型も浮動小数点値に使用されますが、 'double'は精度が高く、より大きいまたはより小さい数値を表すことができます。 –