The square root of 3, as estimated by Wolfram Alpha:
1.7320508075688772935274463415058723669428052538103806280558...
When I do sqrt(3)
in C, it evaluates to 0. Why?
EDIT4: here's how you can reproduce this issue in GDB. Create test.c
as follows:
#include <stdio.h>
#include <math.h>
int main()
{
printf("sqrt(3): %f\n", sqrt(3));
return 0;
}
Compile:
gcc -O0 -g -Wall -pedantic -ansi -lm -o test test.c
Run debugger:
gdb test
Enter this at console:
(gdb) break test.c:6
Breakpoint 1 at 0x400578: file test.c, line 6.
(gdb) r
Starting program: /home/pdedecker/Desktop/test
Breakpoint 1, main () at test.c:6
6 printf("sqrt(3): %f\n", sqrt(3));
(gdb) print sqrt(3)
$1 = 0
(gdb) s
sqrt(3): 1.732051
My GDB version is GNU gdb (GDB) SUSE (7.1-3.12)
.
<math.h>
? – Annamath.h
and I added the appropriate-lrt
flag. – Tatyanatausqrt(3.0)
work? And which debugger are you using? Try aprintf
in your own code. – Anna-lm
, of course. My bad. I have been toying with semaphores a lot lately. – Tatyanatausqrt
prototype that accepts integers. Could that be part of the problem? – Tatyanataudouble
automatically; maybe the debugger is failing to do that. – Anna