共用方式為


lround、lroundf、lroundl、llround、llroundf、llroundl

將浮點數值捨入至最接近的整數。

long lround( 
   double x 
);
long lround(
   float x
);  // C++ only
long lround(
   long double x
);  // C++ only
long lroundf(
   float x
);
long lroundl(
   long double x
);
long long llround( 
   double x 
);
long long llround(
   float x
);  // C++ only
long long llround(
   long double x
);  // C++ only
long long llroundf(
   float x
);
long long llroundl(
   long double x
);

參數

  • x
    捨入的浮點數值。

傳回值

lroundllround 函式會傳回最接近的 long 或 long long 整數到 x。 不論浮點捨入模式的設定為何,正中間的值會以遠離零的方式捨入。 不會回傳錯誤。

輸入

SEH 例外狀況

Matherr 例外狀況

± QNAN, IND

_DOMAIN

備註

因為 C++ 允許多載,您可以呼叫會接受並傳回 float 和 long double 值的 lroundllround 多載。 在 C 程式,lroundllround 一律接受並傳回 double。

需求

常式

必要的標頭

lround, lroundf, lroundl, llround, llroundf, llroundl

<math.h>

如需其他相容性資訊,請參閱 相容性

範例

// crt_lround.c
// Build with: cl /W3 /Tc crt_lround.c
// This example displays the rounded results of
// the floating-point values 2.499999, -2.499999, 
// 2.8, -2.8, 3.5 and -3.5.

#include <math.h>
#include <stdio.h>

int main( void )
{
   double x = 2.499999;
   float y = 2.8f;
   long double z = 3.5;

   printf("lround(%f) is %d\n", x, lround(x));
   printf("lround(%f) is %d\n", -x, lround(-x));
   printf("lroundf(%f) is %d\n", y, lroundf(y));
   printf("lroundf(%f) is %d\n", -y, lroundf(-y));
   printf("lroundl(%Lf) is %d\n", z, lroundl(z));
   printf("lroundl(%Lf) is %d\n", -z, lroundl(-z));
}
  

.NET Framework 對等用法

System::Math::Round

請參閱

參考

浮點支援

ceil、ceilf、ceill

floor、floorf、floorl

fmod、fmodf

round、roundf、roundl

rint、rintf、rintl

其他資源

lrint、lrintf、lrintl、llrint、llrintf、llrintl

nearbyint、nearbyintf、nearbyintl