Я должен выполнить вычисление с двумя числами с плавающей запятой, используя измерения, полученные от датчика расстояния с STM32.Расчет выполняется по следующему уравнению:
result = (df-ds) / ds * 10000;
, где df - первое измерение, а ds - второе измерение.
Пример значений для уравнения;
df = 26.6810;дс = 25,3270;
Моя проблема в том, что результат STM32 для этих значений равен 534.578247 , но когда я выполняю вычисления на калькуляторе Windows вручную, я получаю результат 534.607336 , которыйсильно отличается от расчета STM32.Я также использовал один ручной калькулятор, и ручной калькулятор выдает точно такой же результат с компьютером.
Все переменные объявлены как плавающие в программе.Почему так много различий между двумя вычислениями?Какие изменения я могу внести, чтобы заставить STM32 давать более точные результаты?
Заранее благодарен за любую помощь.
РЕДАКТИРОВАТЬ: Код, который я использую следующим образом;
float result= 0;
dmbres = 27.4587;
int main()
{
while(1)
{
result= (float)((dmbres- res)/res)*10000;
dmbres = res;
sprintf(datapackage, "%d;%.4f;%.6f\r\n", mid, res,result);
monitor(datapackage);
}
пакет данных состоит из 2 других сведений, которые мне нужны от MCU, и они не имеют отношения к вычислению result .
Я использую плату STM32F407 DISC-1.