[Comm] c language question
    Andrey Rybak 
    =?iso-8859-1?q?ra_=CE=C1_iop=2Ekiev=2Eua?=
       
    Сб Ноя  4 19:14:24 MSK 2006
    
    
  
Привет, коммунити!
Извините за оффтоп.
Стоит задача (стандартная должно быть) преобразовывать строки  вида
"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 }
Но вся беда в том, что это не всегда работает. Например atof запросто
может вернуть 0.159999... в приведенном примере, а приведение типа (int)
просто отбрасывает дробную часть и результат налицо: "0.16"
преобразуется в целое 15.
Проблема наверняка стара как сам Си. Кто знает, как классики решают
подобные задачи?
    
    
Подробная информация о списке рассылки community