Главная arrow Программирование arrow ARM arrow Округление float до нужного десятичного разряда Monday, May 01 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

Округление float до нужного десятичного разряда Версия для печати
Написал microsin   
01.07.2009

Иногда в библиотеках C для микроконтроллеров отсутствует функция round. Не оказалось её и в модулях IAR EWB for ARM. Здесь приведен один из вариантов реализации этой функции.

//-----------------------------------
/// Round val to rval.
//-----------------------------------
float round (float val, float rval)
{
    val/=rval;
    if (val<0)
    {
        val -= 0.5;
        val = ceil(val);
    }
    else
   
{
        val += 0.5;
        val = floor(val);
    }
    return (val*rval);
}

Примеры вызова:
float pi100 = 3.14159265 * 100;
printf("%f", round(pi100, 0.01));
printf("%f", round(pi100, 0.1));
printf("%f", round(pi100, 1));
printf("%f", round(pi100, 10));
printf("%f", round(pi100, 100));

[См. также]

1. Описание стандартных функций cmath (math.h) http://www.cplusplus.com/reference/clibrary/cmath/.

Последнее обновление ( 02.07.2009 )
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017