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 。