ページ 1 / 1
0.0 / -1.0 = -0.0
Posted: 2016年8月02日(火) 14:09
by taiki_okano
このコードを実行してみてください。出力が-0.00000みたいになると思います。
なぜでしょうか?
コード:
#include <cstdio>
int main(){
printf("%f\n", 0.0 / -1.0);
return 0;
}
Re: 0.0 / -1.0 = -0.0
Posted: 2016年8月02日(火) 15:08
by たいちう
お使いの処理系が書かれていませんが、たぶん仕様です。
https://ja.wikipedia.org/wiki/IEEE_754
「ゼロは仮数が0の有限数である。
符号が別に定義されているので、符号付の2種類のゼロ +0 と-0 が存在する。」
Re: 0.0 / -1.0 = -0.0
Posted: 2016年8月03日(水) 14:41
by taiki_okano
なるほど、だから、intでは-0とは表示されないわけですね。謎が解けました。ありがとうございます。
Re: 0.0 / -1.0 = -0.0
Posted: 2016年8月03日(水) 17:03
by みけCAT
taiki_okano さんが書きました:intでは-0とは表示されないわけですね。
intでも-0 (negative zero)があっていいことになっています。
まあ、普通(2の補数が使われる場合)は整数の-0は無いですけど…