[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