1. 程式人生 > >c/c++浮點型資料轉換成整型資料

c/c++浮點型資料轉換成整型資料

在c/c++中我們經常由於需要,要把浮點型資料(float、double)轉換成整形資料(各種int),下面我給大家介紹一下我所知道的,希望能給大家以後的程式設計帶來方便:

1.普通的強制轉換:可實現 “下行”整型化——即將浮點數變成小於它的最大整數

c標準     int i;

             double x=5.4;

             i=(int)x;

            此時我們得到的i的值為5;即將浮點型的小數部分去掉。

c++標準   int i;

               double x=5.4;

               i=int(x);

            所得結果與前者一樣,i的值為5,即將浮點型的小數部分去掉。

2.實現四捨五入(m舍n入):

想幾舍幾入最簡單的辦法是在原數上加個0.n就可以了,如:想四捨五入就——5.4  int(5.4+0.5)=5

                                                                                                                        5.5   int(5.5+0.5)=6

                                                                                又如:想二舍三入就——5.2  int(5.2+0.7)=5  
                                                                                                                      5.3 int(5.3+0.7)=6 

3.實現“上行”整型化:即

①使用c/c++標準庫函式:ceil()  需要載入標頭檔案c中載入#include<math.h>  c++中載入#include<cmath>

具體如:int i;      double x=5.4;        i=ceil(x);      // i 等於6

             int i;       double=2.0;          i=ceil(x);      // i 等於2

②自己編寫函式,實現“上行”整型化:即將浮點數轉換成大於它的最小的整數。

舉例—if(x-(int)x)  i=(int)x+1;   //如果 x-(int)x不等於0(這裡實際上是 大於0),則 i 等於 i 的“下行”整型化加1   

               else i=(int)x;           //否則(即x-(int)x=0) i 等於(int)i   這裡表面上是進行了“下行”運算,實際上

                                              x=n.0    (int) x 就是將 2.0 變成 2  。