浮動小数点数の比較について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
けん

浮動小数点数の比較について

#1

投稿記事 by けん » 8年前

お世話になってます。浮動小数点数の比較についての質問です。

float a = 0.123456789f;
float b = a;
float c = 0.123456789f;

としたときに a == b かつ a == c となるのは保証されるのでしょうか?
何らかの計算をした場合、誤差が生じるので計算機イプシロンを使用した比較をしなければいけないのは分かるのですが
代入のみの場合は単純な比較でも大丈夫ですか?ご回答よろしくお願いいたします。

Math

Re: 浮動小数点数の比較について

#2

投稿記事 by Math » 8年前

VS2015,VS2008ではこのようになります。

コード:

#include <stdio.h>
int main() {
	float a = 0.123456789f;
	float b = a;
	float c = 0.123456789f;
	if (a == b && a == c) {
		printf("正しいですよ\n\n");
	}
	else {
		printf("正し有りません\n\n");
	}
正しいですよ

続行するには何かキーを押してください . . .

>保証されるのでしょうか?
Microsoft社などにお尋ねください。補償中のOffice製品を登録すれば無料です。私は何度もリモートサービスで見てもらいました。(レジストリも簡単にいじって直してくれます。富士通のひとは絶対レジストリはつついてくれません。まあWindowsの専門家ですからね)

閉鎖

“C言語何でも質問掲示板” へ戻る