floatの値がどのくらいまで信頼出来るかを調べるためにgの値とifの条件を変えながらプログラムを作っているのですが期待通りの結果が出てきません。
恐らくgの値とifの条件が誤っていると思うのですがどのように修正すれば宜しいでしょうか?
#include <stdio.h> int same( float x, float y ) { if(x<=y) return 1; return 0; } int main(void) { float s = 0.2, t = 0.3, x, y = 0.5; float g; g=0.0001; x = s + t; printf("%f + %f と %f は", s, t, y ); if((x-g)<same( x, y )<(x+g)){ printf("同じ\n"); }else{ printf("異なる\n"); } return 0; }
回答2件
あなたの回答
tips
プレビュー