Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PI
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
ViKo
А есть ли в стандартной библиотеке C, конкретно, в Keil, определение PI? Я могу и сам задать, но...
Tarbal
Ответа не знаю. Всегда задавал сам как константу. Сейчас пришла мысль, что можно задать как глобальную переменную и посчитать при инициализации в начале main()

pi_const = 6*arcsin(0.5);
Высокая точность и не надо никаких цифер запоминать.

Но это только если надо libm подключать. В остальных случаях лучше задать как константу.


Поиск в гугле дал такой ответ:
http://www.nongnu.org/avr-libc/user-manual..._avr__math.html
ViKo
Если мне нужно PI, то и sin cos я использую, библиотеку <math.h> подключаю. rolleyes.gif
Только странно вычислять PI для того, чтобы потом использовать.
Знаю, что в библиотеках под Windows число PI имеется. Что же здесь так убого?
Сергей Борщ
Мдя... читать доки не модно стало...
В math.h определен #define M_PI
ViKo
Цитата(Сергей Борщ @ Nov 27 2013, 16:13) *
В math.h определен #define M_PI

Нема такого!
Конкретно, в Keil.
Tarbal
Цитата(ViKo @ Nov 27 2013, 17:10) *
Если мне нужно PI, то и sin cos я использую, библиотеку <math.h> подключаю. rolleyes.gif
Только странно вычислять PI для того, чтобы потом использовать.
Знаю, что в библиотеках под Windows число PI имеется. Что же здесь так убого?


Я линк потом дбавил. Посмотрите его.

Цитата(ViKo @ Nov 27 2013, 17:10) *
Только странно вычислять PI для того, чтобы потом использовать.


Я просто поделился идеей. Возможно вам она не понравится.

Цитата(ViKo @ Nov 27 2013, 17:10) *
Знаю, что в библиотеках под Windows число PI имеется. Что же здесь так убого?


Есть множество разных компиляторов и в каждом есть маленькие отличия. Я бы не сказал, что убого. Наоборот изобилие. Это в Виноус убого. Один единственный компилятор sm.gif

Потом есть много разных библиотек, которые можно подключать.
yes
Цитата(ViKo @ Nov 27 2013, 16:42) *
А есть ли в стандартной библиотеке C, конкретно, в Keil, определение PI? Я могу и сам задать, но...

в
<math.h>
M_PI
ну и бибилиотека libm ес-сно

upd : я еще удивился, что такая тема и неотвечена, а пока отвернулся от кнопок на пару минут - вот оно как вышло sm.gif
ViKo
Цитата(yes @ Nov 27 2013, 16:30) *
upd : я еще удивился, что такая тема и неотвечена, а пока отвернулся от кнопок на пару минут - вот оно как вышло sm.gif

Как же "отвечена", если в Keil нет ни PI, ни M_PI, ни libm?
_pv
дарю sm.gif,
Код
#define M_PI 3.14159265358979

пользуйтесь на здоровье
ViKo
Цитата(_pv @ Nov 27 2013, 16:39) *
дарю sm.gif,
...
пользуйтесь на здоровье

От моего стола - вашему:
Код
#define PI 3.1415926535897932384626433832795L

По-моему, у меня PI длиннее biggrin.gif
_pv
в double всё равно больше 16 знаков дестичных не лезет, так что только зря байты переводите.
_Pasha
Цитата(Tarbal @ Nov 27 2013, 16:25) *
Есть множество разных компиляторов и в каждом есть маленькие отличия. Я бы не сказал, что убого. Наоборот изобилие. Это в Виноус убого. Один единственный компилятор sm.gif

Ниправельна!
Код
typedef float fpu_type;
//typedef double fpu_type;
static inline fpu_type const_pi(void)
{
return (6*arcsin(0.5));
}


Шутка. Но в ней намек: если по каким-то причинам компилер тупит, и кривость рук тутто ни при чем, возможны варианты.
ViKo
Цитата(_pv @ Nov 27 2013, 16:48) *
в double всё равно больше 16 знаков дестичных не лезет, так что только зря байты переводите.

Зато в C# в формат decimal лезет больше.
yes
Цитата(ViKo @ Nov 27 2013, 17:38) *
Как же "отвечена", если в Keil нет ни PI, ни M_PI, ни libm?

а хидер <math.h> есть? может сам код воткнули не туда. по моему в keil-е не так все плохо, чтобы без флоатов/с нестандартными флоатами жить
ViKo
Цитата(yes @ Nov 27 2013, 20:04) *
а хидер <math.h> есть? может сам код воткнули не туда. по моему в keil-е не так все плохо, чтобы без флоатов/с нестандартными флоатами жить

Хидер в Кейле есть. И к проекту подключен.
Флоаты к делу не относятся.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.