2017-02-27 4 views
-5

等価演算子を使用して値が等しくなると、出力は成功ではなく失敗を示します。これはコンパイラのバージョンに問題がありますか?この時プログラムProgram coded in System and OutputCエラーの浮動小数点

void main() 
     { 
      float k = 0.1; 
      if (k == 0.1) 
       printf("Success"); 
      else 
       printf("Failure"); 
     } 
+1

から撮影します!そして、テキストの画像を投稿しないでください! – Olaf

+0

浮動小数点数を比較することは常に同じであるとみなすべきです。 – byxor

+0

0.1と比較するのは、kが浮動小数点であり、表現の有効数字がより少ないので、0.1はdoubleであり、kと同じではないという理由です。また、浮動小数点数を等しく比較することもできますが、2つの値がまったく同じ方法で割り当てられている場合に限ります。しかし、それは通常はまれであるため、両者の差の絶対値を小さな正の値と比較して、「十分に近い」とみなして同等かどうかを判断することが最善です。 – FredK

答えて

0

添付ルックのスクリーンショット:

は、Cプログラムを、次の出力を予測します。

#include<stdio.h> 
int main() 
{ 
    float x = 0.1; 
    if (x == 0.1) 
     printf("IF"); 
    else if (x == 0.1f) 
     printf("ELSE IF"); 
    else 
     printf("ELSE"); 
} 
The output of above program is “ELSE IF” which means the expression “x == 0.1” returns false and expression “x == 0.1f” returns true. 

は** Cの情報ページを参照してください尋ねる前にhere

関連する問題