3 का वर्गमूल, के रूप में Wolfram Alpha द्वारा अनुमानित:जीडीबी sqrt (3) से 0 का मूल्यांकन क्यों करता है?
1.7320508075688772935274463415058723669428052538103806280558...
जब मैं सी में sqrt(3)
करते हैं, यह 0. क्यों करने के लिए मूल्यांकन करता है?
EDIT4: यहां बताया गया है कि आप इस समस्या को जीडीबी में कैसे पुन: पेश कर सकते हैं। test.c
बनाएं इस प्रकार है:
#include <stdio.h>
#include <math.h>
int main()
{
printf("sqrt(3): %f\n", sqrt(3));
return 0;
}
संकलित:
gcc -O0 -g -Wall -pedantic -ansi -lm -o test test.c
भागो डिबगर:
gdb test
कंसोल पर इस दर्ज करें:
(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
मेरे GDB संस्करण GNU gdb (GDB) SUSE (7.1-3.12)
है।
हमें यह परिणाम प्राप्त करने के लिए आप जिस कोड का उपयोग कर रहे हैं उसे दिखाएं। – birryree
क्या आप '' शामिल हैं? –
+1 यिर्मयाह, मुझे याद है कि पुरानी उम्र में मुझे उस त्रुटि का सामना करना पड़ा :) –