2
#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);
}
當我運行它這樣的:什麼是-0.0000在C使用浮動和雙?
./a.out 3.141593
輸出
double = -0.000000 ,float = -0.000000
爲什麼它-0.00000
?我怎樣才能讓它輸出0.000000
?
我該如何製作a == answer
?
怎麼會有-0值,如果它使用2的補碼?
http://en.wikipedia.org/wiki/Signed_zero – Joe 2013-03-02 13:54:16
通過固定類型'a'是'雙'。 – 2013-03-02 13:55:46
@joe:結果不爲零。它只是打印的地方太少。 – 2013-03-02 13:56:43