Простое обнаружение смартфона

Хорошо, я видел пару сценариев обнаружения мобильных устройств, которые пытаются идентифицировать все мобильные телефоны, по оценке Wolfram Alpha: 1.7320508075688772935274463415058723669428052538103806280558 ... Когда я выполняю sqrt (3) на C, он оценивается как 0. Почему? EDIT4: вот как вы можете ...

Квадратный корень из 3, по оценке Вольфрама Альфа:

1.7320508075688772935274463415058723669428052538103806280558...

Когда я делаю sqrt (3) в C, он оценивается как 0. Почему?

EDIT4 : вот как вы можете воспроизвести эту проблему в GDB. Создайте 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) .

16
задан Pieter 26 February 2011 в 09:22
поделиться