ViKo 1 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба А есть ли в стандартной библиотеке C, конкретно, в Keil, определение PI? Я могу и сам задать, но... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба Ответа не знаю. Всегда задавал сам как константу. Сейчас пришла мысль, что можно задать как глобальную переменную и посчитать при инициализации в начале main() pi_const = 6*arcsin(0.5); Высокая точность и не надо никаких цифер запоминать. Но это только если надо libm подключать. В остальных случаях лучше задать как константу. Поиск в гугле дал такой ответ: http://www.nongnu.org/avr-libc/user-manual..._avr__math.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба Если мне нужно PI, то и sin cos я использую, библиотеку <math.h> подключаю. :rolleyes: Только странно вычислять PI для того, чтобы потом использовать. Знаю, что в библиотеках под Windows число PI имеется. Что же здесь так убого? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба Мдя... читать доки не модно стало... В math.h определен #define M_PI Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба В math.h определен #define M_PI Нема такого! Конкретно, в Keil. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба Если мне нужно PI, то и sin cos я использую, библиотеку <math.h> подключаю. :rolleyes: Только странно вычислять PI для того, чтобы потом использовать. Знаю, что в библиотеках под Windows число PI имеется. Что же здесь так убого? Я линк потом дбавил. Посмотрите его. Только странно вычислять PI для того, чтобы потом использовать. Я просто поделился идеей. Возможно вам она не понравится. Знаю, что в библиотеках под Windows число PI имеется. Что же здесь так убого? Есть множество разных компиляторов и в каждом есть маленькие отличия. Я бы не сказал, что убого. Наоборот изобилие. Это в Виноус убого. Один единственный компилятор :) Потом есть много разных библиотек, которые можно подключать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба А есть ли в стандартной библиотеке C, конкретно, в Keil, определение PI? Я могу и сам задать, но... в <math.h> M_PI ну и бибилиотека libm ес-сно upd : я еще удивился, что такая тема и неотвечена, а пока отвернулся от кнопок на пару минут - вот оно как вышло :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба upd : я еще удивился, что такая тема и неотвечена, а пока отвернулся от кнопок на пару минут - вот оно как вышло :) Как же "отвечена", если в Keil нет ни PI, ни M_PI, ни libm? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба дарю :), #define M_PI 3.14159265358979 пользуйтесь на здоровье Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба дарю :), ... пользуйтесь на здоровье От моего стола - вашему: #define PI 3.1415926535897932384626433832795L По-моему, у меня PI длиннее Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба в double всё равно больше 16 знаков дестичных не лезет, так что только зря байты переводите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба Есть множество разных компиляторов и в каждом есть маленькие отличия. Я бы не сказал, что убого. Наоборот изобилие. Это в Виноус убого. Один единственный компилятор :) Ниправельна! typedef float fpu_type; //typedef double fpu_type; static inline fpu_type const_pi(void) { return (6*arcsin(0.5)); } Шутка. Но в ней намек: если по каким-то причинам компилер тупит, и кривость рук тутто ни при чем, возможны варианты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба в double всё равно больше 16 знаков дестичных не лезет, так что только зря байты переводите. Зато в C# в формат decimal лезет больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба Как же "отвечена", если в Keil нет ни PI, ни M_PI, ни libm? а хидер <math.h> есть? может сам код воткнули не туда. по моему в keil-е не так все плохо, чтобы без флоатов/с нестандартными флоатами жить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба а хидер <math.h> есть? может сам код воткнули не туда. по моему в keil-е не так все плохо, чтобы без флоатов/с нестандартными флоатами жить Хидер в Кейле есть. И к проекту подключен. Флоаты к делу не относятся. math.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться