[Comm] c language question
Andrey Rybak
=?iso-8859-1?q?ra_=CE=C1_iop=2Ekiev=2Eua?=
Сб Ноя 4 20:44:54 MSK 2006
Eugene Ostapets wrote:
> 04.11.06, Andrey Rybak<ra iop.kiev.ua> написал(а):
>
>> Привет, коммунити!
>> Извините за оффтоп.
>> Стоит задача (стандартная должно быть) преобразовывать строки вида
>> "0.ab" в целое число ab.
>> Вероятно, я плохо понимаю Си , но самый прямой метод будет выглядеть так:
>> 1 #include<stdio.h>
>> 2 #include<stdlib.h>
>> 3 int main(){
>> 4 const char* a = "0.16";
>> 5 printf("%d",(int)(100*atof(a)));
>> 6 return 0;
>> 7 }
>>
> Плохо понимаете... Почитайте как храняться дробные числа... А для
> решения задачи смотрите man round, man rint
>
они округляют только в заданном направлении, т.е. надо еще направление
округления задавать. (Или atof гарантированно возвращает, в данном
примере, либо .16 либо 15.99999... ? Тогда с дирекшионом проблем нет)
И чем эти функции отличаются от ceil & floor? Опять-таки не избежать
явного приведения типов (int)
Это я к тому - а что ж я плохо понимаю тогда?
Подробная информация о списке рассылки community