А какая ф-ция в С округляет рез-т. Необходимо для IAR (AVR)?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Интересно
14 февраля 2005 г. 17:36
Составить ответ
|||
Конференция
|||
Архив
Ответы
Ответ: такой функции хватит в 90% случаев, может и в 99.
—
_VAI
(14.02.2005 20:49, 466 байт)
Пасибки всем. Еще вопрос: если в выражении используются char, int, float... то в какой "арифметике" IAR будет вычислять? Не пинайте, учусь.
—
Интересно
(14.02.2005 18:18,
пустое
)
если в выражении встретится float то видимо все во флоате вычислять будет а итоговый будет в зависимости от переменной назначения, но выдадуться предупреждения о несоответсивии типов чисел поэтому лучше явно указывать чего в чего преобразовывать
—
ы
(14.02.2005 18:40,
пустое
)
floor, ceil или просто int - глядя что вам надо
—
Elektronik
(14.02.2005 17:47,
пустое
)
Результаты разные бывают. Какой именно Вас интересует?
—
Bill
(14.02.2005 17:41,
пустое
)
если в рез-те 9.4 то округлять до 9, если 9.5 то 10
—
Интересно
(14.02.2005 17:52,
пустое
)
а вот вам влоб!!! float p=3.14; if((long)(p*10)-(10*((long)p))>5 ){p=(long)p+1;}else{p=(long)p;} хотя можно еще подумать...
—
zxcvbn
(14.02.2005 18:01,
пустое
)
И это будет работать ?
—
nеt
(14.02.2005 18:26,
пустое
)
Ладно шучу. Правильнее работать будет если заменить ">" на ">=".
—
nеt
(14.02.2005 18:55,
пустое
)
прибавить 0.5 и преобразовать в int)) int_var = (int) (float_var + 0.5)
—
ы
(14.02.2005 17:57,
пустое
)
лучше так, и для отрицательных тогда сгодится (+)
—
0men
(14.02.2005 18:16, 32 байт)
Тока лучше i = (int)( f+((f>0.0)?(0.5):(-0.5)) );
—
cout
(14.02.2005 18:25,
пустое
)
а для f=0.1 ?
—
cout
(14.02.2005 18:21,
пустое
)
А, да, вроде нормально.
—
cout
(14.02.2005 18:22,
пустое
)
0 конечно))
—
ы
(14.02.2005 18:22,
пустое
)
тогда -10 округлится в -11?)))
—
ы
(14.02.2005 18:20,
пустое
)
теперь я торможу))) отбой...
—
ы
(14.02.2005 18:20,
пустое
)
однако круто))
—
колян безпарольный
(14.02.2005 18:07,
пустое
)
бля, протормозил...
—
zxcvbn
(14.02.2005 18:03,
пустое
)
Integer = (int)(Flooat +0.5) даст это.
—
cout
(14.02.2005 17:57,
пустое
)
мне пора менять коньки на санки...
—
zxcvbn
(14.02.2005 18:08,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru