嚴(yán)格來(lái)講,你的代碼是錯(cuò)誤的,用int的b接收double型的a的計(jì)算結(jié)果,是不可以的,即使結(jié)果是整數(shù)。
成都創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比融水網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式融水網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋融水地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
結(jié)果當(dāng)然也會(huì)出現(xiàn)誤差。正確的應(yīng)該是:
double a=10.3845;
double b;
b=10000*a;
printf("%lf",b);
補(bǔ)充:把上面 printf("%lf",b);改為printf("%.0lf",b); 就能使后面無(wú)小數(shù)。
#include?stdio.h????//?包含系統(tǒng)頭文件要用?,?自定義頭文件用?""
float?mul(float?x,float?y);????//?函數(shù)聲明
float?mul(float?x,float?y)????//?函數(shù)定義
{
return?x?*?y;
}
int?main()
{
float?x,?y,?z;
scanf("%f,%f",x,?y);????//?這里要取地址,?且你的輸入必須是例如:?20.0,?30.0,?如果?20.0?30.0,?則會(huì)結(jié)果是?0.00,?這是因?yàn)榈诙?shù)沒(méi)有接收到輸入
z?=?mul(x,y);
printf("The?result?is?%.2f",?z);????//?這里輸出不能取地址,?并且格式為含兩位有效數(shù)字
return?0;
}
#include?stdio.h
//計(jì)算兩數(shù)相乘函數(shù)
int?multi(int?x,int?y)
{
return?x*y;??//返回兩數(shù)相乘結(jié)果
}
int?main()
{
int?m,n;
printf("輸入兩個(gè)整數(shù):?");
scanf("%d%d",m,n);
printf("%d?*?%d?=?%d\n",m,n,multi(m,n));?//調(diào)用函數(shù),輸出結(jié)果
return?0;
}