- 383 名前:モデム接続 mailto:sage [2009/03/08(日) 17:38:34 ]
- >>352 +0.5か-0.5して(int)でキャストする。
#include <stdio.h> #include <math.h> int main(void) { int i, c; double b; float a[]={ 1.49F, 1.499F, 1.4999F, 1.49999F, 1.499999F, 1.4999999F, 1.49999999F, 1.5F, -1.49F, -1.499F, -1.4999F, -1.49999F, -1.499999F,-1.4999999F,-1.49999999F, -1.5F, }; for(i=0;i<sizeof a/sizeof(int); i++) { if(a[i]>=0.0){ b = floor(a[i]+0.5); // floor は−∞方向への切捨て c = (int)(a[i]+0.5); }else{ b = ceil(a[i]-0.5); // ceil は+∞方向への切上げ c = (int)(a[i]-0.5); } printf("%.7f %f %d\n", a[i], b, c); } return 0; }
|

|