#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 值?