помогите с типами данных
- Войдите на сайт для отправки комментариев
Ср, 08/10/2014 - 09:54
Я новичек в С, поэтому такой нубский вопрос.
Понадобилось мне рассчитать арксинус через ряд Фурье.
float arcsinF (float var)
{
float tmp=0;
float val;
float result=0;
val = var;
tmp = val+
(1/6)*pow(val,3)+
(3/40)*pow(val,5)
+(15/336)*pow(val,7)
+(105/3456)*pow(val,9);
result = (tmp*180/3.14159);
return result;
}
Однако столкнулся с такой проблемой. При вызове arcsinF(10/40) упорно возврашает 0 потому что 10 и 40 целые числа. тоже с использованием переменных типа int. как это победить? Я не хочу ради одной функции переводить все переменные в float.
короче говоря как получить float результат от деления двух int?
Может быть начать с начала? Ну типа накой это нужно в ардуино?
http://arduino.cc/en/Reference/Float
Мне просто любопытно, на сколько подвесает уно при подобных расчетах.
спасибо. просто я привык что операция деления это всегда Float, вот и напоролся. Получается, что за типами данных и результата нужно следить постоянно.
Пока совсем не подвисает)) но код еще совсем маленький. вот если бы я тотже арксинус считал через ряд Фурье члена так до 100-го рекурсией, тогда да. но это уже тема другого топика. Просто из соображений экономии памяти и быстродействия стараюсь по минимуму использовать переменные Float, вот и столкнулся.
тема закрыта