1、首先在電腦中打開vc6.0,新建一個項目,添加stdio.h頭文件。
成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,先為梅河口等服務(wù)建站,梅河口等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為梅河口企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
2、然后添加math.h頭文件,添加main函數(shù)。
3、接著定義double類型變量 number。
4、接著定義down、up變量,使用floor向下取整。
5、然后使用ceil向上取整,最后使用printf打印結(jié)果。
6、最后運行程序,看看結(jié)果,如下圖所示,就完成了。
c語言中查看小數(shù)長度的方法代碼如下:
1)如果按%s輸入,也就是按字符串格式輸入,先找到小數(shù)點的位置,然后統(tǒng)計下小數(shù)點后數(shù)字的長度。
具體實現(xiàn)可參考:
#include
#include
#include
intmain(intargc,char*argv[])
{
chara[128];
while(scanf("%s",a)!=EOF)
{
if(strstr(a,".")!=NULL)
printf("%d\n",strlen(strstr(a,".")+1));
else
printf("0\n");
}
system("pause");
return0;
}
2)如果按%f(對應(yīng)float類型小數(shù))或者%lf(double類型的小數(shù))方式讀入,則需要先去掉整數(shù)部分,然后看小數(shù)部分一直乘10減去整數(shù)部分,知道等于0,統(tǒng)計,乘了幾次10,但是由于浮點數(shù)在計算機中存的并不是準(zhǔn)確值,這個往往得不到正確的結(jié)果??梢允褂胹printf(str,"%g",f);,然后由于f畢竟不是準(zhǔn)確值,還是會出現(xiàn)有些問題,源碼如下:
#include
#include
#include
intmain(intargc,char*argv[])
{
chara[128];
floatf;
while(scanf("%f",f)!=EOF)
{
sprintf(a,"%g",f);
if(strstr(a,".")!=NULL)
printf("%d\n",strlen(strstr(a,".")+1));
else
printf("0\n");
}
system("pause");
return0;
}
%在c語言中有兩種釋義,一是求余符號,經(jīng)常會用到判斷一個數(shù)是不是能被另一個整除。二是引導(dǎo)符,用于引導(dǎo)輸入輸出項表列的格式。
在scanf、printf這樣的函數(shù)中,將參數(shù)類型與輸入/輸出句子中的相應(yīng)位置相對應(yīng)所使用的轉(zhuǎn)義標(biāo)志符。%c單個字符輸出的意思;%s是輸出字符串;%d是輸出整型;%f是輸出整型。其中常用的有%c--對應(yīng)字符型char%s--對應(yīng)字符串型char*(char[])%d--對應(yīng)整形int%ld--對應(yīng)長整形long%x--對應(yīng)十六進(jìn)制整數(shù),大于9的字母小寫%X--對應(yīng)十六進(jìn)制整數(shù),大于9的字母大寫%u--對應(yīng)無符號整形unsignedint。
0.12345的小數(shù)點后第一位就是tab[0]=(int)(0.12345*10)
第二位就是tab[1]=((int)(0.12345*100)%10
第三位就是tab[2]=((int)(0.12345*1000)%10
以此類推
兩種表示方式:
1、定點表示:必須有小數(shù)點。
例如:0.123, .123, 123.0。
2、指數(shù)表示:e或E之前必須有數(shù)字,指數(shù)必須為整數(shù)。
例如:12.3e3 ,123E2, 1.23e4。
注意:浮點數(shù)常量默認(rèn)為double類型,如果浮點數(shù)常量表示float類型,在末尾添加小寫的f或者大寫的F,表示此常量為單精度浮點常量。
定點小數(shù)是純小數(shù),約定的小數(shù)點位置在符號位之后、有效數(shù)值部分最高位之前。若數(shù)據(jù)x的形式為x=x0.x1x2…xn(其中x0為符號位,x1~xn是數(shù)值的有效部分,也稱為尾數(shù),x1為最高有效位),則在計算機中的表示形式為:
一般說來,如果最末位xn= 1,前面各位都為0,則數(shù)的絕對值最小,即|x|min= 2^(-n)。如果各位均為1,則數(shù)的絕對值最大,即|x|max=1-2^(-n)。所以定點小數(shù)的表示范圍是:2^(-n)≤|x|≤1 -2^(-n)。
擴展資料
由于“編碼總位數(shù)為8”的限制,真值-128無法用原碼、反碼來表示,似乎不能用上述規(guī)則來求解補碼,但實際上是可行的——只要不管它的最高位即可,操作辦法如下:
將128化為二進(jìn)制為:1 0000000,最高位為1,可以只對舍去最高位后剩余的7位進(jìn)行處理即可,首先取反得:1111111,加1得:1 0000000,最高位有進(jìn)位需丟棄,即得:0000000,加上符號位就得補碼:1 0000000。
又如,當(dāng)編碼總位數(shù)為4時,真值X=+0.101的原碼、反碼、補碼均為:0 101。
真值X=-0.101的原碼、反碼、補碼依次為:1 101、1 010、1 011。
同理,特例,-1的補碼為:1 000。
在定點小數(shù)中,小數(shù)點隱含在第一位編碼和第二位編碼之間
定點小數(shù),是指小數(shù)點準(zhǔn)確固定在數(shù)據(jù)某個位置上的小數(shù),從實用角度看,都把小數(shù)點固定在最高數(shù)據(jù)位的左邊,小數(shù)點前邊再設(shè)一位符號位。按此規(guī)則,任何一個小數(shù)都可以被寫成 :N = NS . N-1?N-2?… N-M。
參考資料來源:百度百科-定點小數(shù)的表示方法
可以在輸出時,指定小數(shù)點后的有效位數(shù),實現(xiàn)精確到若干位的效果。
要精確到小數(shù)點后若干位,則數(shù)據(jù)類型為浮點型,可能為單精度(float)或雙精度(double)。
在C語言中,使用格式化輸出函數(shù)printf來實現(xiàn)輸出。
輸出格式為
%.NF
1 %為格式化字符串的引導(dǎo)字符。
2 .N表示指定顯示N位小數(shù)。
3 F為類型字符,對于float, F值為f, 對于double,F(xiàn)值為lf。
舉例:
1 要輸出float a=1.23234; 保留3位小數(shù)的寫法為:
printf("%.3f",a);
2 輸出double b=123.345232; 保留4為小數(shù),寫法為:
printf("%.4lf",b);