當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C語言 remainder用法及代碼示例

C語言math頭文件(math.h)中remainder函數的用法及代碼示例。

用法:

     double remainder  (double numer     , double denom);
      float remainderf (float numer      , float denom);
long double remainderl (long double numer, long double denom);
計算餘數(IEC 60559)
返回的浮點餘數numer/denom(四舍五入到最接近的值):

remainder=numer--quot*denom

在哪裏quot是由於以下原因導致的:numer/denom,四舍五入到最接近的整數值(中途情況四舍五入到甚至數字)。

類似的函數fmod,則返回相同值,但商數被截斷(四舍五入為零)。
函數remquo具有與該函數相同的行為,但它另外提供了對所用中間商值的訪問。

標頭<tgmath.h>提供此函數的type-generic宏版本。
額外的過載在此頭文件中提供(<cmath>)的其他組合算術類型(Type1Type2):這些重載有效地將其參數轉換為double在計算之前,除非至少有一個參數是類型long double(在這種情況下,兩者都強製轉換為long double反而)。

參數

numer
商分子的值。
denom
商分母的值。

返回值

除法論點的其餘部分。
如果該餘數為零,則其符號應為numer
如果denom為零,該函數可能返回零或導致域錯誤(取決於庫的實現)。

如果一個域錯誤發生:
- 和math_errhandlingMATH_ERRNO設置:全局變量errno被設定為EDOM
- 和math_errhandlingMATH_ERREXCEPT設置:FE_INVALID被拋出

示例

/* remainder example */
#include <stdio.h>      /* printf */
#include <math.h>       /* remainder */

int main ()
{
  printf ( "remainder of 5.3 / 2 is %f\n", remainder (5.3,2) );
  printf ( "remainder of 18.5 / 4.2 is %f\n", remainder (18.5,4.2) );
  return 0;
}


輸出:

remainder of 5.3 / 2 is -0.700000
remainder of 18.5 / 4.2 is 1.700000

相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C remainder function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。