[devel] Вопрос про работу ceil() из ANSI C, баг или не баг?

Denis Medvedev a_mdl на mail.ru
Ср Окт 19 09:11:26 UTC 2011


Все нормально.
Результат целочисленного деления 5/2 = 2
ceil(2)=2
Результат плавающего деления 5.0/2 =2.5
ceil(2.5)=3


19 октября 2011, 13:09 от Anatoly Lyutin <vostok на altlinux.org>:
 
  
  
 
 День добрый!
 
 Подскажите, пожалуйста, почему такое поведение функции ceil:
 
 #include <math.h>                                                                                                                                            
 #include <stdio.h>                                                                                                                                           
 void main()                                                                                                                                                  
 {                                                                                                                                                            
     int c = 5;                                                                                                                                               
     printf("a=%f\n", ceil(c/2));                                                                                                                             
 } 
 
 
 [vostok на localhost tmp]$ gcc a.c -lm
 [vostok на localhost tmp]$ ./a.out                                                                                                                           
 a=2.000000  
 
 Но:
 #include <math.h>                                                                                                                                            
 #include <stdio.h>                                                                                                                                           
 void main()                                                                                                                                                  
 {                                                                                                                                                            
     double c = 5;                                                                                                                                            
     printf("a=%f\n", ceil(c/2));                                                                                                                             
 } 
 
 [vostok на localhost tmp]$ ./a.out                                                                                                                           
 a=3.000000 
 
 gcc version 4.5.1 20101130 (ALT Linux 4.5.1-alt8) (GCC) 
 ?
  
_______________________________________________
Devel mailing list
Devel на lists.altlinux.org
https://lists.altlinux.org/mailman/listinfo/devel
   
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20111019/4bfdd895/attachment-0001.html>


Подробная информация о списке рассылки Devel