なぜシーネ(Cのコードチェッカー)にエラーと比較する場合には、floatのint?
質問
両方の数値は、floatはあります。であることを理由にエラーの精密?はしおりを付けることができる、より深刻な問題ですが?
解決
ので、セットの整数値ではありませんセットのfloat値を'int'と'float'です。例えば、float値を0.5ない等の整数型セットの整数値4519245367存在しない可能性のあるリセット値をfloatできます。なので、チェッカーフラグこの課題としてチェックによるプログラマを交換してください。
他のヒント
のでしょうかは非常に良い方法がありました。ないすべての浮きを切り捨てるint;ないすべてのintに変換することができる。浮かぶ.
比較時に、整数値を取得しま"推進"への浮動小数点の値とします。その時点でこなしているということの正確な同等の比較二つの浮動小数点数ではほとんど常に悪いことであると考えていた。
るべき一般的にはある種の"イプシロンボール"、または範囲に許容される値、まとの比較の場合には、vauesありが互いに等しいと見なされる.必要な機能を約のようになります:
int double_equals(double a, double b, double epsilon)
{
return ( a > ( b - epsilon ) && a < ( b + epsilon ) );
}
アプリケーションの場合はないのは明らかに選択のイプシロンを使用し、DBL_EPSILON.
が浮かできない店舗の正確なint値、その場所に二つの変数、int i float f場合でも、割り当て"i=f;"の比較"if(i==f)"かtrueを返します。
仮署名の整数IEEE浮動小数点フォーマットの大きさの整数を表すことができている:
short -> 15 bits
float -> 23 bits
long -> 31 bits
double -> 52 bits
そのため、 float
表現することができず short
や double
表現することができず long
.
が必要な場合はこの(すなど正当な理由があると見なしの課題に記載のその他の回答を行います)キャラクター設定をキャストからタイプです。