Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2013, 23:14   #11
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

а почему не получается сделать вот так?
Код:
float buf = 1/130;
     
printf("%f", buf);
puts("\r\n");
Результат получается 0.000000
dem66 вне форума Ответить с цитированием
Старый 13.02.2013, 23:32   #12
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

при делении целого на целое получается тоже целое. А целое округляется в меньшую сторону. Сделайте 1.0 / 130
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 14.02.2013, 00:00   #13
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

Уже разобрался, оказывается нужно было так как вы говорите 0 в конце добавлять или тип float указывать. Типа вот так float buf = (float)1/(float)130;

Со всем этим разобрался, работает как часы. Подскажите пожалуйста альтернативу floor(), а то с библиотекой #include <math.h> получается слишком громоздко, целых 13 кб, пишу прошивку для микроконтроллера
dem66 вне форума Ответить с цитированием
Старый 14.02.2013, 10:37   #14
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Со всем этим разобрался, работает как часы. Подскажите пожалуйста альтернативу floor(), а то с библиотекой #include <math.h> получается слишком громоздко, целых 13 кб, пишу прошивку для микроконтроллера
Изучить формат представления вещественных чисел в данном микроконтроллере, сделать аналог floor() руками.
Какого чёрта тогда у Вас в предыдущем варианте делало sprintf() ?!
Abstraction вне форума Ответить с цитированием
Старый 14.02.2013, 13:09   #15
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
Восклицание

ну с этим делом я уже разобрался, флор впринцыпе не нужен, точность от этого не страдает.
Оказывается проблема не в большой библиотеке а в самом коде


Код:
float tik, period;
int freq, timer0, presc;

timer0 = 256-161;		
presc = 256;

tik = (1.0/((10000000.0/(float)presc)/256.0))/255.0;
period = (256.0-(float)timer0)*tik;

freq = (int)((1.0/period)/2.0);
Когда потом начинаю делать чтото с этими пременными, допустим присвоить значение пременной freq в переменную timer0 то код получается нереально большим. Если дальше ничего с ними не делать то размер откомпилированого файла будет маленький.

Например
Код:
if(freq > 0 && freq<=256){
    timer0 = freq;
}
После этого размер получается здоровенный. А есть ли способ удалить переменную? Допустим в PHP это unset() в C++ это delete
dem66 вне форума Ответить с цитированием
Старый 14.02.2013, 13:32   #16
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
А есть ли способ удалить переменную? Допустим (...) в C++ это delete
Оператор delete не удаляет переменную, Вам кто-то наврал.
А вообще, открывайте скомпилированный код и смотрите, что сделал компилятор и почему.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascal:округлить число nickolaeff Помощь студентам 2 09.06.2012 09:39
Как округлить вещественное число до 2 знаков после запятой roxy7 Microsoft Office Excel 2 06.12.2011 22:15
время округлить и перевести в число smrtipathaka Microsoft Office Excel 3 04.04.2011 12:08
как округлить число до десятой? StdentOfCollege Общие вопросы Delphi 4 05.04.2010 19:55
Как округлить число до сотых в Edit xxxsas Общие вопросы C/C++ 3 25.01.2009 09:04