ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
5 мая
275191 Топик полностью
rezident (28.09.2011 12:56, просмотров: 243) ответил Dany на Microchip C30 округление
Видимо потому, что препроцессор перемножает данные константы в 32-бит float, а не в double. Либо это результат integer promotional, когда 32-бит float переводится в 32-бит int усечением дробной части. В IAR ARM 5.50 (int 32 бит) получается вот так intMult100 =(int)(4.45 * 100); // intMult100 = 445 intMult100 =(int)(4.45 * 100L); // intMult100 = 445 intMult100 =(int)(4.45f * 100); // intMult100 = 444 intMult100 =(int)(4.45f * 100.0f); // intMult100 = 444