1樓:匿名使用者
#include
//a可以是float、double、long double型if (floor(a) == a)
else
2樓:匿名使用者
將其轉化為 int 型別,如果(int)i == i ,那麼它就是小數部分全部為零的浮點數。
3樓:汐日南莘
假如a是浮點數,再定義一個整型變數int b=a;再定義一個float c=a/b,假如c=1則浮點數a是整數
4樓:匿名使用者
無論是通過sizeof檢視位元組數(int和float佔用位元組數相同),還是做float轉換為int然後相除判斷是否等於1(int轉為float可能尾數丟失),或者是sprintf轉化為字串去檢查是否有小數點(int會轉換為float,導致有小數點出現),都有問題。
以字元讀入數,挨個字元判斷,檢查到有小數點且所有字元在字元‘0’到‘9’之間,且小數點後不超過6位可以判為float,超過為double,沒有小數點為int;只長度為1且字元為‘a’到‘z’或‘a'到'z'為char,長度超過1為字串。
5樓:金色潛鳥
用%g 格式把 float, double 轉字串,檢查字串裡有沒有小數點,有就不是,無就是整數。
例如:double y=23.000;
int i,l,flag;
sprintf(str,"%g",y);
l = strlen(str);
flag = 0;
for (i=0;i#include 用 裡面的flt_epsilon,dbl_epsilon 極小誤差判斷if ( fabs(x - (int) x) <= flt_epsilon) printf("yes int !\n");
如果 數值太大, (int) x 超出範圍,這個方法就不行了。
6樓:匿名使用者
c語言裡數字輸入輸出的時候都有確定它的型別的啊,不用判斷的.
如果你指的是那種直接給你的一個數的話,那是不確定的,比如2.0可以確定它是浮點數,但是2就不確定了,,可能是浮點數,也可能是整形的,看你定義的時候是怎麼定義的了
7樓:
c語言裡浮點數和整數的操作和表示都不相同,這種說法很不嚴格,所以如何判斷,就看你自己的定義啦。
我的理解是,如果一個浮點數可以分為整數部分和小數部分,那麼你想判斷一個浮點數是不是跟它的整數部分基本相同,嚴格一點說就是誤差很小。這樣的話,你可以這麼寫:
double err = 1e-10; //先自己定義誤差x = 2.9999999997;
if (abs(int(x)-x)< err) // 和它整數部分誤差的絕對值是否小於規定的誤差...
8樓:匿名使用者
如果a=int(a)為真,就是了。
如何判斷c語言的一個浮點數是不是整數?
9樓:金色潛鳥
用%g 格式把 float, double 轉字串,檢查字串裡有沒有小數點,有就不是,無就是整數。
例如:double y=23.000;
int i,l,flag;
sprintf(str,"%g",y);
l = strlen(str);
flag = 0;
for (i=0;i#include 用 裡面的flt_epsilon,dbl_epsilon 極小誤差判斷if ( fabs(x - (int) x) <= flt_epsilon) printf("yes int !\n");
如果 數值太大, (int) x 超出範圍,這個方法就不行了。
c語言中怎樣判斷輸入的是整數還是浮點數
10樓:匿名使用者
scanf(%s,str);//先存成字串if(null==strchr(str,'.'))//等於null是沒有找到小數點else{sscanf(str,%lf,&b);//再從字串格式化成浮點型例如:inti;floatf;doubled;輸入i是整數,輸入f是float型,輸入d是double型(2)看輸入格式scanf(%d%f%lf,..
);%d輸入整數;%f輸入float型;%lf輸入double型------------------至於鍵盤上拍入的數,scanf(%d,&i);如果你拍入123或-123,沒問題,拍入的是整數,讀進去,也是整數。如果你拍入123.4或-123.
4,只會讀進去123或-123,而.4殘餘在緩衝區。scanf(%f,&f);如果你拍入123.
4或-123.4,讀進去是浮點數123.4或-123.
4如果你拍入123或-123,讀進去自動變浮點數。-------------------c語言的數的例子:123,-123,--整數,輸入格式%d064,040--八進位制整數,輸入格式%o
11樓:
先存成字串,判斷有沒有小數點,再從字串格式化成整型或浮點型。
#include
#include
#include
//char *strchr( const char *str, int ch );
int main(int argc, char *argv)else
system("pause");
return 0;}
c語言中怎麼判斷輸入的數是整數還是浮點數?
12樓:匿名使用者
判斷是否有小數唄,但是不科學,也許有更好方法#include
void main (void)
else}
13樓:匿名使用者
c語言中沒有判斷輸入是整數還是浮點數的既有功能,需要自己實現.
實現方法是把輸入作為字串讀入,然後自行分析該字串表示的是整數還是浮點數.
14樓:匿名使用者
可以用sizeof()來判斷,他們的位元組數是不相等的!int是4,float是8!希望對你有幫助!
各位是如何判斷一個浮點數小於,小於等於零的
15樓:匿名使用者
對於e^t,t為任意實數,始終大於0,而此時-2x小於等於0 所以此時小於等於0
c語言怎麼判斷一個數是不是整數
16樓:凌亂心扉
方法1:
#include
#include
float x;
...if(fabs(x-(int)x)<1e-8)printf(“x是一個整數
\n”);
else printf(“x不是一個整數\n”);
方法2:
int c=(int)b,d=(int)(b+0.999999)if(c==d)
printf(“是整數\n”);
else
printf(“不是整數\n”);
方法3:
float b;
...if(b-(int)b==0)
printf(“是整數\n”);
else
printf(“不是整數\n”);
方法4:
float b;
...if(b!=(int)b)
printf(“不是整數\n”);
else
printf(“是整數\n”);
17樓:聽不清啊
如果用實型變數x接收一個數或通過計算得到一個數後要知道它是不是整數,沒有很好的辦法。因為實數在計算機中不能準確地儲存,所以不能直接判斷兩個實型量(x,與表示整數的實型量,必須要同型別的量才能比較)是否相等,首先要明確能允許的誤差是多少。比如,一般情況當誤差的絕對值小於10的負8次方時我們可以認為兩個實數是相等的。
所以,要使用math庫。
#include
float x;
......
if(fabs(x-(int)x)<1e-8)printf("x是一個整數\n");
else printf("x不是一個整數\n");
18樓:王錚教授
其實嚴格意義上來說,你們都想複雜了。
我們應該從問題角度出發,根本不用函式。
接下來我用c++來說明,其實c也同理
#include萬能頭挺好的
int main()
19樓:匿名使用者
if(number%2==0||number%2==1)是整數; //number對2取模,餘數為0或1就是整數。
else 不是;
實際上,還可以在定義上取巧,比如說,把輸入數n設為float ,另有一個 int m;
輸入n後,
m=n;//強制把n取整賦給m
if(n==m)就是整數了。
20樓:真忙得很
#include
int main(void)
這裡while(scanf("%d",&a)==1)代表如果輸入的是一個整數就返回1並執行printf("輸入的是一個整數“);如果不是就返回0,退出迴圈,並執行printf("輸入的不是一個整數“);
C語言中怎樣判斷輸入的是整數還是浮點數
scanf s,str 先存成字串if null strchr str,等於null是沒有找到小數點else sscanf str,lf,b 再從字串格式化成浮點型例如 inti floatf doubled 輸入i是整數,輸入f是float型,輸入d是double型 2 看輸入格式scanf d ...
c語言如何把整型轉換成浮點數,C語言如何把整型轉換成浮點數?
程式猿3號 c語言有以下幾種取整方法 1 直接賦值給整數變數。如 int i 2.5 或 i int 2.5 這種方法採用的是捨去小數部分,能用於你的問題。2 c c 中的整數除法運算子 本身就有取整功能 int int 而下面介紹的取整函式返回值是double。整數除法對正數的取整是捨去小數部分,...
C 中如何判斷浮點數是否為,C 中 如何判斷乙個浮點數是否為
判斷這個實數的絕對值是否小於乙個很小的實數,比如絕對值小於1e 6 double a if fabs a 1e 6 return true else return false 戴曼彤 float f 0.000 bool bl f 0.000001 f 0.000001 大概就是這樣。 竹飆史春嵐 ...