Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: strtofloat in IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
odys
Всем привет!!!
Уважаемые спецы у меня маленький вопрос..
Возможно ли в IAR 5.30 преобразование типа (я имею ввиду готовую функцию)
float a=strtofloat("554.234");
или
char buff[]="3534.475";
float a=strtofloat(buff);
demiurg_spb
Посмотрите на функции atof и sscanf.
VAI
Или пишете свою функцию, алгоритм простейший:
- каждая последующая цифра слева от точки (если её нет, то от конца строки) умнодается на 1, 10, 100 и т.д.
- каждая последующая цифра справа от точки умнодается на 0.1, 0.01 и т.д.
Вот небольшой пример:
Код
/* --- mysscanf_f() --------------------------------------------------------------------------------------- **
.*  Преобразование из строки  в формате "% *.*f" в число double
.* *s - указатель на строку
.* *d - указатель на double
.* -------------------------------------------------------------------------------------------------------- */
static void mysscanf_f( char *s, double *d )
{
int sign = 0;
double m;

  for (; *s == ' '; s++ ) // пробелы вначале строки пропустим
   ;
  if ( *s == '-' ) // смотрим знак
  { s++;
    sign = 1;
  }
  for ( m = 10., *d = 0.; *s != '.' && *s != '\0'; s++ )          // целая часть
  { *d *= m;
    *d += (double)( *s - '0' );
  }
  for ( m = 0.1; *s != '\0'; s++ )                                // дробная
  { if ( *s == '.' )
      continue;
    *d += (double)( *s - '0' ) * m;
    m *= 0.1;
  }
  if ( sign )
    *d = -*d;
}
odys
спасибо всем...!!! atof(str) то что надо... я очень ленивый..))))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.