#include?iostream
目前成都創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、二連浩特網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
#include?"math.h"
#include?"stdlib.h"
int?main(int?argc,?char**?argv)?
{
int?m=0,n=0,z=0,x=0;//m為輸入的第一個(gè)數(shù)?n為第二個(gè)數(shù)?z為整數(shù)部分?x為小數(shù)部分?
double?dm,dn,s=0;??//S是商,dm,dn分別為輸入的第一,二個(gè)數(shù)的double型?
printf("請(qǐng)輸入兩個(gè)正整數(shù):");
scanf("%d,%d",m,n);
dm=(double)m;
dn=(double)n;
s=dm/dn;
z=(int)s;
x=(double)(m%n)/n*(1000000);
printf("\n商:%lf??整數(shù)部分是:%d,?小數(shù)部分是:%d\n",s,z,x);
system("pause");
return?0;
}
除了一開始用float進(jìn)行定義之外,后面進(jìn)行除法運(yùn)算的時(shí)候要加.0,否則算出的結(jié)果電腦會(huì)自動(dòng)取整~~如:3/2的結(jié)果和3.0/2的結(jié)果就不同~~因?yàn)闆]有定義3/2為浮點(diǎn)型,所以3/2自動(dòng)取整,結(jié)果等于1而3.0/2,由于預(yù)先用浮點(diǎn)型表示其結(jié)果顯然為:1.5 除法運(yùn)算符" / ",如果是兩個(gè)整數(shù)相除結(jié)果為整數(shù)如果需要保留小數(shù)時(shí) 必須將其中一個(gè)除數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù) #i nclude stdio.h #i nclude math.h main() { float x; float y; printf("Enter x:"); scanf("%d",x); y=fabs((5*x+1)/(x*x+1)); printf("y is %f\n",y); } 或者 #i nclude stdio.h #i nclude math.h main() { int x; float y; printf("Enter x:"); scanf("%d",x); y=fabs((float)(5*x+1)/(x*x+1)); printf("y is %f\n",y); }
必須轉(zhuǎn)換其中一個(gè)為浮點(diǎn)數(shù)才能除得小數(shù)字。
之后用數(shù)字格式化語句限制小數(shù)位數(shù)就好了。
1、可以利用C語言的強(qiáng)制轉(zhuǎn)換規(guī)則。
C語言規(guī)定,當(dāng)浮點(diǎn)數(shù)強(qiáng)制轉(zhuǎn)換為整型類型時(shí),只保留整數(shù)部分。
所以對(duì)于浮點(diǎn)數(shù),比如float類型a, 執(zhí)行(int)a后的值就是整數(shù)部分。
這樣當(dāng)執(zhí)行a-(int)a時(shí),得到的就是小數(shù)部分的值了。
2、如果該功能經(jīng)常使用,那么可以定義一個(gè)帶參數(shù)的宏
#define DECIMAL(X) (x-(int)x)
這樣執(zhí)行DECIMAL(a)得到的值就是t的小數(shù)部分。
把變量改成雙精度型的就可以了。
具體步驟如下:
把變量改成雙精度型(double)的就好了,dev-c++用的編譯器是gcc,在我的電腦上實(shí)驗(yàn)雙精度的沒問題,如果不行的話可以換成浮點(diǎn)型變量(float),但是會(huì)損失精度。
或者結(jié)果用%f來輸出,單精度小數(shù)。
小數(shù)點(diǎn)后的兩位小數(shù)變?yōu)檎麛?shù),再加上0.5,如果小數(shù)點(diǎn)后一位大于等于5則會(huì)進(jìn)一位,整數(shù)與浮點(diǎn)數(shù)相除結(jié)果為浮點(diǎn)數(shù),即實(shí)現(xiàn)了要求。
當(dāng)兩個(gè)整數(shù)相除時(shí),由于小數(shù)點(diǎn)以后的數(shù)字會(huì)被截?cái)啵惯\(yùn)算結(jié)果為整數(shù),故此時(shí)若希望得到運(yùn)算結(jié)果為所預(yù)期的浮點(diǎn)數(shù),則此時(shí)必須將兩整數(shù)其一或是全部強(qiáng)制轉(zhuǎn)換類型為浮點(diǎn)數(shù)。?
拓展:C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言,它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它由美國(guó)貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。
本文名稱:go語言相除所得小數(shù) C語言兩數(shù)相除保留三位小數(shù)
鏈接分享:http://jinyejixie.com/article14/hehcge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站改版、微信公眾號(hào)、網(wǎng)站導(dǎo)航、App設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)