【經典演算法】:如何判斷整數和浮點數是否相等
阿新 • • 發佈:2019-01-04
這個問題來自於我解決一個叫做五猴分桃的問題
其中會出現這麼一些資料
我需要在右邊第二欄資料裡面找到整數型的資料,比如說 3121這類的資料
但是我給第二欄定義的是float型的資料,如何判斷這個float型的資料是不是整數呢?
用瞭如下方法,注意看!!!
int fun(float num){
int temp = (int)num;
if(temp==num) return 1; //如果類似於int型就返回1
return 0;
}
原理是什麼呢?
比如說 float a=3200; if(a==3200) cout<<”yes”;
這段程式碼是會輸出yes的,
但是如果:
float a = 3200.1;if(a==3200) cout<<”yes”;
這段程式碼是不會輸出yes的
我上面的程式碼用了int強轉,就是得到float型的int值,然後判斷是否相等,懂了吧?
是不是很簡單?
最後附上生成圖片資料的原始碼:(來自於解決五猴分桃問題)
#include <iostream>
using namespace std;
int main(){
for(int i=1;i<10000;i++){ //從1到10000作迴圈
float res = i;
for(int j=0;j<5;j++){
res = (res-1)*4/5;
}
cout <<i<<" "<<res<<endl;
}
}