| Округление float до нужного десятичного разряда |   | 
	| Добавил(а) microsin | 
| Иногда в библиотеках C для микроконтроллеров отсутствует функция round. Не оказалось её и в модулях IAR EWB for ARM. Здесь приведен один из вариантов реализации этой функции. 
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | //-----------------------------------
// Округление val к 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) site:cplusplus.com. |