【c++高級】不得不學的

簡介

c/c++給我們提供了math.h這樣一個頭文件,大部分的數學運算都在個頭文件有所包含。

c++ 11標準的<math>包含了9個大類58個函數。

三角函數-7(Trigonometric)、雙曲線函數-6(Hyperbolic)、指數對數函數-14(Exponential and logarithmic)、冪函數-4(power)、差和伽馬函數-4(Error and gamma)
、舍入和餘項函數-13(Rounding and remainder)、浮點數操作函數-4(Floating-point manipulation)、最大最小函數-3(minimum maximum)、其他函數-3(other funcion)。

本文章是日常項目中用過的函數整理,,希望增加未介紹的函數加進來的可以評論該文章,作者將進一步完善,分享是一種精神,希望將這一件小事,這一個小的頭文件介紹好,感謝每一位讀者和評論者。

一 三角函數

二 雙曲線函數

三 指數對數函數

四 冪函數

五 差和伽馬函數

六 舍入和餘項函數

1. ceil

      double ceil (double x);
      float ceil (float x);
      long double ceil (long double x);
      double ceil (T x);  
            ceil函數返回一個不小於參數值得最小的整數,通俗的講是向右取整。

2.floor

      double floor (double x);
      float floor (float x);
      long double floor (long double x);
      double floor (T x);
           floor函數返回一個不大於參數值的最大整數,通俗的激昂是向左取整。

3.trunc

      double trunc (double x);
      float trunc (float x);
      long double trunc (long double x);
      double trunc (T x);  
            trunc是向0取整,它爲ceil和floor的取整都滿足不了的情況提供了一個解決方案。

           不知道爲什麼沒有向無窮取整。

4.round

     double round (double x);
     float round (float x);
     long double round (long double x);
     double round (T x); 
          round返回一個離參數值最近的整數,當有兩個整數距離參數的距離一樣的時候,取遠離0的那一個。

          eg.
          round(3.5) = 4;          

          round(-3.5)=-4;

5.fmod

          講完了取整函數,就可以講一下這個取餘數的函數fmod。

      double fmod (double numer     , double denom);
      float fmod (float numer      , float denom);
      long double fmod (long double numer, long double denom);
      double fmod (Type1 numer      , Type2 denom);  

            fmod = numer - tquot *denom

           tquot是一個向0取整的值,           

            這樣當numer>0時,tquot*denom<=numer。從而fmod>=0

            當numer<0時,tquot*denom>=numer。從而fmod<=0

            這樣一來就可以看出,實際上fmod是帶有符號的。

  

七 浮點數操作函數

八 最大最小函數

1.fdim

      double fdim  (double x     , double y);
      float fdimf (float x      , float y);
      long double fdiml (long double x, long double y);
            該函數的返回值大於等於零。

            當x>y是,返回x-y,否則返回0。

            也是此函數可以表示爲:return x-y>0?x-y:0

2.fmax、fmin

            這兩個函數不再介紹了,分別返回兩個數中的大、小的值。


九 其他函數

1. fabs

      double fabs (double x);
      float fabs (float x);
      long double fabs (long double x);
      double fabs (T x); 
            這個函數還是很有用的,用到的地方很多。

            它返回輸入值得絕對值。

2.abs

           這個函數看上去和fabs有一定的淵源。單從名字上來看,少了‘f’的標識。fabs的f是float的意思。

           事實就是這樣。abs將返回一個int。也就是對參數取絕對值,然後轉換爲整形。

3.fma

      double fma (double x     , double y     , double z);
      float fma (float x      , float y      , float z);
      long double fma (long double x, long double y, long double z);
      double fma (Type1 x      , Type2 y      , Type3 z); 
            這個函數將返回,x*y+z。乍一看上去,我任務這是一個多麼XX的函數,這不是閒着沒事兒幹嗎。

           後來又仔細想了想平常所做的數值運算,發現這種形式還真的不少。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章