Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Округление чисел


Автор: Ofer 18.11.2008, 11:24
Доброе вермя суток! Ответьте, пожалуйста, на такой вопрос. Почему в C++Builder 2007 при делении чисел, к примеру

Код

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 float a = 1,b = 10,c;
 c = a/b;
 Form1->Edit1->Text = FloatToStr(c);
}


Получаем результат с = 0,100000001490116 ?
Как это исправить?
И попутный вопрос - как округлить число до двух знаков после запятой, чтоб с = 0,10(или не с = 2,147245, а с = 2,15)?

Автор: mrbrooks 18.11.2008, 11:39
Ofer, ну во первых камрад - почитай инфу по поводу представления вещественных чисел. 

Цитата(Ofer @  18.11.2008,  11:24 Найти цитируемый пост)
И попутный вопрос - как округлить число до двух знаков после запятой, чтоб с = 0,10(или не с = 2,147245, а с = 2,15)? 

FloatToStrF();

Добавлено через 3 минуты и 51 секунду
Код

float r = 155.33668974;
String str = FloatToStrF(r,ffFixed,5,2);


выведет 155,34

Автор: Ofer 18.11.2008, 21:22
Цитата(mrbrooks @  18.11.2008,  11:39 Найти цитируемый пост)
Ofer, ну во первых камрад - почитай инфу по поводу представления вещественных чисел. 


mrbrooks, а можете дать ссылку? smile


Цитата(mrbrooks @  18.11.2008,  11:39 Найти цитируемый пост)
FloatToStrF();


Спасибо  smile 

Автор: nk19 19.11.2008, 14:34
Например, http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=374, там на Делфи, но это не важно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)