-
- Вообще-то, препроцессоры ничего не делают. Все делается Bill(44 знак., 28.09.2011 16:19)
- MCU PIC24F, sizeof(int) = 2 - Dany(28.09.2011 13:38)
- Попробуйте еще такой вариант, это обычно срабатывает. rezident(50 знак., 28.09.2011 13:44)
- Это ручное округление в большую сторону. Вот ситуация где вредно округлять в большую сторону, ожидаемое значение 999 Dany(130 знак., 28.09.2011 14:01)
- Чушь! 9.995 * 100.0 = 999.5 И простое округление, а не в
большую сторону, должно дать 1000. С какого это должно получиться 999? Вы таки хотите floor(), т.е. без округления? Ну тогда зачем же жаловаться, что 4.45*100.0 = 444.999[9] и, в fk0(753 знак., 28.09.2011 14:39)- Начальная реализация, с которой все началось Dany(2596 знак., 28.09.2011 15:00)
- Пока эта ф-ция применялась для отображения параметров - проблем не было и не было разницы в округлении. А для ввода float округление вредно, вы вводите 4.45, потом происходит atof->проверка граничных значений->FloatToASCII->отображение для Dany(38 знак., 28.09.2011 15:09)
- А для ввода scanf или strotod ничего и не округляют. atof использовать нельзя, если нужна валидация ввода. - fk0(28.09.2011 15:32)
- Исключительно качественное подтверждение моим словам о том, что нефиг заменять библиотечный sprintf на свои и глючные велосипеды с квадратными колёсами. sprintf(buf, "%0.2f", flVal) решает проблему изначально. За вас давно подумали, на все fk0(70 знак., 28.09.2011 15:26)
- Пока эта ф-ция применялась для отображения параметров - проблем не было и не было разницы в округлении. А для ввода float округление вредно, вы вводите 4.45, потом происходит atof->проверка граничных значений->FloatToASCII->отображение для Dany(38 знак., 28.09.2011 15:09)
- Начальная реализация, с которой все началось Dany(2596 знак., 28.09.2011 15:00)
- Чушь! 9.995 * 100.0 = 999.5 И простое округление, а не в
- Это то же самое, что round(), если при приведении типа делается floor(). Проблема в том, что KEIL x51 в такой ситуации сделает round() при приведении и можно получить ошибку на +0.5. Возможно KEIL не прав. Вопрос, где говорится, как именно должен fk0(25 знак., 28.09.2011 13:53)
- Да-да-да, при округлении самый главный вопрос звучит так: "мы продаем или покупаем"? :))) - rezident(28.09.2011 14:34 - 15:24, ссылка)
- Это ручное округление в большую сторону. Вот ситуация где вредно округлять в большую сторону, ожидаемое значение 999 Dany(130 знак., 28.09.2011 14:01)
- Попробуйте еще такой вариант, это обычно срабатывает. rezident(50 знак., 28.09.2011 13:44)