Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 355, средняя оценка - 4.72
gira13
4 / 4 / 0
Регистрация: 20.12.2010
Сообщений: 20
#1

Есть ли какая-то константа в С, означающая число Пи - C++

20.12.2010, 01:30. Просмотров 51103. Ответов 23
Метки нет (Все метки)

Или может функция, возвращающая точное число Пи
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2010, 01:30     Есть ли какая-то константа в С, означающая число Пи
Посмотрите здесь:

Какая есть библиотека для работы с ftp? C++
Определить, какая цифра в числе есть большей – первая или последняя C++
C++ Есть ли какая-нибудь возможность рандомизировать процесс перемешивания элементов контейнера
Есть натуральное число n. Проверить, есть ли в том числе 3 одинаковых цифры C++
Дано трехзначное число. Определить, какая цифра в нем есть больше – первая или последняя. C++
Нужно изучить библиотеку STL. Какая литература есть хорошая? C++
C++ Есть какая нибудь информация по созданию алгоритма или программы для автопилота
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
20.12.2010, 01:34     Есть ли какая-то константа в С, означающая число Пи #2
есть
C
1
M_PI
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2010, 04:34     Есть ли какая-то константа в С, означающая число Пи #3
M_PI - расширение компилятора
easybudda
Эксперт С++
9453 / 5466 / 926
Регистрация: 25.07.2009
Сообщений: 10,490
20.12.2010, 09:11     Есть ли какая-то константа в С, означающая число Пи #4
Цитата Сообщение от accept Посмотреть сообщение
M_PI - расширение компилятора
В каком смысле?
Код
$ grep M_PI /usr/include/math.h
#define M_PI            3.14159265358979323846
#define M_TWOPI         (M_PI * 2.0)
#define M_PI_2          1.57079632679489661923
#define M_PI_4          0.78539816339744830962
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2010, 09:28     Есть ли какая-то константа в С, означающая число Пи #5
в том, что в языке нету M_PI, это расширение gcc
less /usr/include/math.h
/M_PI
Код
#if defined __USE_BSD || defined __USE_XOPEN
easybudda
Эксперт С++
9453 / 5466 / 926
Регистрация: 25.07.2009
Сообщений: 10,490
20.12.2010, 10:18     Есть ли какая-то константа в С, означающая число Пи #6
accept, ну в мелкостудии оно тоже определено, правда, как у них водится, немного по-своему...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#if defined(_USE_MATH_DEFINES) && !defined(_MATH_DEFINES_DEFINED)
#define _MATH_DEFINES_DEFINED
 
/* Define _USE_MATH_DEFINES before including math.h to expose these macro
 * definitions for common math constants.  These are placed under an #ifdef
 * since these commonly-defined names are not part of the C/C++ standards.
 */
 
/* Definitions of useful mathematical constants
 * M_E        - e
 * M_LOG2E    - log2(e)
 * M_LOG10E   - log10(e)
 * M_LN2      - ln(2)
 * M_LN10     - ln(10)
 * M_PI       - pi
 * M_PI_2     - pi/2
 * M_PI_4     - pi/4
 * M_1_PI     - 1/pi
 * M_2_PI     - 2/pi
 * M_2_SQRTPI - 2/sqrt(pi)
 * M_SQRT2    - sqrt(2)
 * M_SQRT1_2  - 1/sqrt(2)
 */
 
#define M_E        2.71828182845904523536
#define M_LOG2E    1.44269504088896340736
#define M_LOG10E   0.434294481903251827651
#define M_LN2      0.693147180559945309417
#define M_LN10     2.30258509299404568402
#define M_PI       3.14159265358979323846
#define M_PI_2     1.57079632679489661923
#define M_PI_4     0.785398163397448309616
#define M_1_PI     0.318309886183790671538
#define M_2_PI     0.636619772367581343076
#define M_2_SQRTPI 1.12837916709551257390
#define M_SQRT2    1.41421356237309504880
#define M_SQRT1_2  0.707106781186547524401
 
#endif  /* _USE_MATH_DEFINES */
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2010, 10:46     Есть ли какая-то константа в С, означающая число Пи #7
расширения могут быть определены везде, но они не должны ничему соответствовать
их могут менять и в пределах одного компилятора, в разных его версиях
но самое главное, они могут называться одинаково, а значения разные иметь
и из-за этого в программе появляется неопределённость
silent_1991
Эксперт С++
4956 / 3032 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.12.2010, 12:05     Есть ли какая-то константа в С, означающая число Пи #8
accept, по-моему, вы придираетесь. Я лично не верю, что завтра выйдет новая версия моего любимого компилятора, и в ней будет
C
1
#define M_PI       3.16159265358979323846
easybudda
Эксперт С++
9453 / 5466 / 926
Регистрация: 25.07.2009
Сообщений: 10,490
20.12.2010, 12:45     Есть ли какая-то константа в С, означающая число Пи #9

Не по теме:

Цитата Сообщение от accept Посмотреть сообщение
но самое главное, они могут называться одинаково, а значения разные иметь
Это как у Задорнова: " ...Американцы решили считать число пи за 3, чтобы считать было легче."

Да никто не спорит, что константа пи - не часть языка С/С++, но с вероятностью 99.(9)% она будет определена в math.h или во включаемом им заголовке и значению её удивляться не прийдётся.
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.12.2010, 06:34     Есть ли какая-то константа в С, означающая число Пи #10
да, можно определить её как 3.14 и ничего удивительного
просто в программе что-то там будет округляться совсем немного, и ракета полетит не туда чуть-чуть

Цитата Сообщение от silent_1991
accept, по-моему, вы придираетесь. Я лично не верю, что завтра выйдет новая версия моего любимого компилятора
программа должна быть переносимой, иначе не выйдет что-нибудь там когда-нибудь, и придётся её класть куда-нибудь очень далеко и надолго
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,054
21.12.2010, 07:07     Есть ли какая-то константа в С, означающая число Пи #11
accept, ну раз такое дело кто тебе мешает определить через #define что то вроде MyPI с желанной точностью?
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.12.2010, 07:17     Есть ли какая-то константа в С, означающая число Пи #12
ничто не мешает, но это не расширение
расширение может выглядеть одинаково, а работать по-разному
и читать инфу по каждому расширению, в каком компиляторе оно какое, да нафик это надо

понимаешь, вот есть функция strcpy() и вот она есть в стандарте, и хоть что там будут писать какие-нибудь компиляторы, предлагать перейти на похожую функцию, только чуть-чуть другую, да мне оно нафик не надо, потому что я стандарт прочитал, как она работает запомнил, и всё, я знаю где там и что, и поменяться оно может только в новом стандарте, который я естественно на этот счёт просканирую точно также, как первый
Mr.X
Эксперт С++
3040 / 1685 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
21.12.2010, 07:25     Есть ли какая-то константа в С, означающая число Пи #13
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
#include <cmath>
#include <iomanip>
#include <iostream>
int main()
{
    std::cout << std::setprecision(20)
              << acos(-1.0)
              << std::endl;    
}
nullpointer
45 / 45 / 5
Регистрация: 30.03.2009
Сообщений: 518
19.05.2013, 21:48     Есть ли какая-то константа в С, означающая число Пи #14
Не могу понять в чем дело. Подключаю math.h и пишу в функции
C++
1
return pow(4 * M_PI * fabs(x - y), -1) - pow(4 * M_PI * fabs(x - yy), -1);
Компилятор начинает упорно ругаться на M_PI как на необъявленный идентификатор.
castaway
Эксперт С++
4876 / 3015 / 370
Регистрация: 10.11.2010
Сообщений: 11,075
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 21:54     Есть ли какая-то константа в С, означающая число Пи #15
Так тебе об этом и говорят. M_PI не является частью стандарта. Какой компилятор?
nullpointer
45 / 45 / 5
Регистрация: 30.03.2009
Сообщений: 518
19.05.2013, 21:55     Есть ли какая-то константа в С, означающая число Пи #16
lazybiz, от мелкомягких ребят, VS 2010
castaway
Эксперт С++
4876 / 3015 / 370
Регистрация: 10.11.2010
Сообщений: 11,075
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 21:57     Есть ли какая-то константа в С, означающая число Пи #17
C++
1
2
#define _USE_MATH_DEFINES
#include <math.h>
Aiirh
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 2
11.01.2015, 11:42     Есть ли какая-то константа в С, означающая число Пи #18
C++
1
2
3
4
5
#define _USE_MATH_DEFINES
#include "ATLComTime.h"
#include <cmath>
 
std::cout << M_PI;
nmcf
4929 / 4267 / 1428
Регистрация: 14.04.2014
Сообщений: 16,764
11.01.2015, 13:31     Есть ли какая-то константа в С, означающая число Пи #19
В VS константа числа пи только с math.h появляется через _USE_MATH_DEFINES, а на cmath, не влияет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2015, 13:37     Есть ли какая-то константа в С, означающая число Пи
Еще ссылки по теме:

Какая среда, кроме visual studio, есть еще для c++ C++
C++ Как работать с Winsock, какая есть литература?
Есть ли в std, или где-нибудь ещё, константа для пустой строки (""), как endl (\n) для символа переноса? C++
Функция определяющая что общее число книг есть шестизначное число C++
Есть натуральное двузначное число n. Верно ли, что среди его цифр есть 11 или 99? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Aiirh
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 2
11.01.2015, 13:37     Есть ли какая-то константа в С, означающая число Пи #20
Возможно и так, не буду спорить. Но если убрать любую из этих строк в VS2013 - M_PI не работает

Из MSDN:
C
1
2
3
4
5
#define _USE_MATH_DEFINES // for C++
#include <cmath>
 
#define _USE_MATH_DEFINES // for C
#include <math.h>
Math Constants are not defined in Standard C/C++. To use them, you must first define _USE_MATH_DEFINES and then include cmath or math.h.
The file ATLComTime.h includes math.h when your project is built in Release mode. If you use one or more of the math constants in a project that also includes ATLComTime.h, you must define _USE_MATH_DEFINES before you include ATLComTime.h.
Yandex
Объявления
11.01.2015, 13:37     Есть ли какая-то константа в С, означающая число Пи
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru