Я работаю в embedded c, переменная x - это данные датчиков, которые являются целыми числами (лежит между 1 и 100), и мне нужно вывести переменную y на lcd как линейное отношение x, но после округления ее до ближайшего целого числа, будет ли этот код работать? Если нет, то каковы другие способы сделать то же самое.Как получить самые близкие значения целого во встроенных c?
int x
float y
int z
x=4 /*say its 4*/
y=((x*3.45)+3.5) /*which is a decimal*/
z=(unsigned int)(y)
Вы хотите реализовать круглые(), напольные() и потолочные()? Например, floor() получает целочисленную часть и вычитает из действительного значения и имеет значение, проверьте, меньше ли это 0,5, а затем дайте слово, иначе дайте слово + 1. Негативы включены? floor() требует bittwiddling. –
Было бы очень быстро и легко сделать это, используя арифметику с фиксированной точкой, но поскольку вы уже приняли ответ, я предполагаю, что вам все равно. –