ページ 11

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

Posted: 2017年1月02日(月) 07:38
by けん
お世話になってます。浮動小数点数の比較についての質問です。

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

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

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

Posted: 2017年1月02日(月) 12:43
by Math
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の専門家ですからね)