2011-10-11 84 views

回答

20

由於int s不能存儲浮點數,浮點數的小數部分將被截斷,你將留下的整數:

float x = 3.14159; 
int y = (int)x; 

這工作,因爲int只能夠

:存儲整數,因此它只是存儲 x


見的整數部分也gnu C Library Rounding Functions

— Function: double ceil (double x) 
— Function: float ceilf (float x) 
— Function: long double ceill (long double x) 
— Function: double floor (double x) 
— Function: float floorf (float x) 
— Function: long double floorl (long double x) 
— Function: double trunc (double x) 
— Function: float truncf (float x) 
— Function: long double truncl (long double x) 
— Function: double rint (double x) 
— Function: float rintf (float x) 
— Function: long double rintl (long double x) 
— Function: double nearbyint (double x) 
— Function: float nearbyintf (float x) 
— Function: long double nearbyintl (long double x) 
— Function: double round (double x) 
— Function: float roundf (float x) 
— Function: long double roundl (long double x) 
— Function: long int lrint (double x) 
— Function: long int lrintf (float x) 
— Function: long int lrintl (long double x) 
— Function: long long int llrint (double x) 
— Function: long long int llrintf (float x) 
— Function: long long int llrintl (long double x) 
— Function: long int lround (double x) 
— Function: long int lroundf (float x) 
— Function: long int lroundl (long double x) 
— Function: long long int llround (double x) 
— Function: long long int llroundf (float x) 
— Function: long long int llroundl (long double x) 
— Function: double modf (double value, double *integer-part) 
— Function: float modff (float value, float *integer-part) 
— Function: long double modfl (long double value, long double *integer-part) 
+2

如果OP真的想舍入(而不是像你指出的那樣捨去),也許使用'ceil()'在這裏會很有幫助。 –

+0

@SedateAlien你的權利,它只是花了我幾分鐘的時間來粘貼這些功能和鏈接。所以在iPhone上並不是最快的:)。 – chown

+0

...以及您的一堆功能來自_GNU C Library_而不是_Apple Objective C Runtime_。也許有些是可用的,但如果很多不可用,我肯定不會感到震驚。 – sarnold

10

但是3.999也等於3,如果你只是將它轉換爲int。

float value = 3.14159f; 
int intValue = (int)value; 
float fractional = fmodf(value, (float)intValue); 
if(fractional > .5f) 
    intValue++; 

intValue是你的四捨五入整數。