#include <stdio.h>
#include <stdlib.h>
#define answer 3.141593
void main(int argc, char **argv) {
float a = (argc - 2)?: strtod(argv[1], 0);
printf("double = %lf ,float = %f", a-answer , a-answer);
}
そのように実行すると:
./a.out 3.141593
出力は
double = -0.000000 ,float = -0.000000
なぜ-0.00000
ですか?どうすれば出力できます0.000000
か?
どうすれば作れa == answer
ますか?
2 の補数を使用すると、なぜ -0 の値になるのでしょうか?