c語言判斷小數
1. 在c語言中要怎麼來判斷整數和小數啊比如說當在輸入浮點型數據的時候我要提醒它出錯要怎麼做
#include
#include
#include
//char*strchr(constchar*str,intch);
intmain(intargc,char*argv[])
{
inta=0;
doubleb=0;
charstr[10]="";
scanf("%s",str);//先存成字元串
if(NULL==strchr(str,'.'))//等於NULL是沒有找到小數點
{
sscanf(str,"%d",&a);//再從字元串格式化成整型
printf("輸入的是整型:%d ",a);
}
else
{
sscanf(str,"%lf",&b);//再從字元串格式化成浮點型
printf("輸入的是浮點型:%lf ",b);
}
system("PAUSE");
return0;
}
(1)c語言判斷小數擴展閱讀
C語言判斷數字為幾位數
#include <stdio.h>
int main()
{
long long n;
int count = 0;
printf("輸入一個整數: ");
scanf("%lld", &n);
while(n != 0)
{
// n = n/10
n /= 10;
++count;
}
printf("數字是 %d 位數。", count);
}
2. C程序中,如何判斷一個數是否為小數
#include<stdio.h>
void main()
{
float a,c;
int b;
scanf("%f",a);
b=a;
c=b;
if(a!=c)printf("輸入的數字是小數\n");
else printf("輸入的數字是整數\n");
}
3. C語言中如何區別小數和整數
C語言中有int
,lang,float,double,其中整形有lang和int,lang是長整形,float是單精度浮點型,double是雙精度浮點型,浮點型就是小數,整形就是整數,明白了嗎?
4. C語言如何判斷一個小數的小數點後有幾位
除非是從輸入的時候就存成字元串, 然後判斷小數點後的位數。
一旦存成浮點型變數,不管是double還是float都是近似值,
這時就無法准確判斷有幾位了。
5. C語言 請問怎麼識別變數的小數位數
c語言裡面,默認%f是小數點後6位,如果想小數點後面16位,寫成%.16lf
不會自動四捨五入的,double是一個近似值,通常沒有辦法做的很精確.
通常能精確到小數點後面6位,也就是說超過6位可能就不準了。
6. 如何用C語言判斷一個小數的小數點後面有幾位,思路
可以通過定義一個double型的變數,並對變數進行賦值,之後輸出該變數的值即可。
下面舉例來具體說明:<pre t="code" l="cpp">double f = 3.141592653589;
printf(;%lf;, f);實驗結果輸出3.141593,說明double型能精確到小數點後6位。
註:該測試是在32位計算機中的VS2010環境下運行的,具體的精確度還要考慮計算機的位數與編譯環境。
7. C語言輸出自動識別是否是小數怎麼搞
%f輸入變數float後,一定是0.000000的形式,因為這個是浮點數的形式。要想把他換成你想要的形式,先轉成char*,然後判斷if('0'
==
char)吧,沒什麼辦法,而且輸出後也要是字元串,計算機里好像沒有3.3,3.33,3.333這樣的數,都是自動補齊的。
8. C語言如何判斷一個小數的小數點後有幾位
利用整數的截斷效果,將數據小數部分單取出來,乘以10後取整,與原數比較,若不等,則判斷大於小數點後1位,依此計算直到相等為止。
在取整時進行小數點後1位四捨五入可部分防止二進制浮點數與真實數據間的舍入誤差問題。
9. c語言如何判斷一個字元串中是否有小數點
#include<stdio.h>
int main()
{
char str[100];
int i,j=0;
printf("please input:");
scanf("%s",str);
for(i=0;i<sizeof(str)/sizeof(char);i++)
{
if(str[i]=='.')
{
j++;
}
}
printf("該字元串有小數點%d個\n",j);
return 0;
}
希望能幫到你
10. 在c語言中要怎麼來判斷整數和小數
你看一下這個方法符不符合你的要求
12.000算整數吧,只是後面多幾個零
#include<stdio.h>
void main()
{
float num;
int NB;
printf("輸入一個數");
scanf("%f",&num);
NB=(int)num;
while(1)
{
if((num-NB)!=0)
{
printf("\n您輸入的是小數,請重新輸入:");
scanf("%f",&num);
NB=(int)num;
}
else
{
break;
}
}
printf("\nnum=%f",num);
}