#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
Установив тип 'a' быть' double'. –
@joe: результат не отрицательный. Это просто печатается со слишком маленькими местами. –