c语言float输出分数,c语言同一题目求解结果用float和int输出值差1.
c語言同一題目求解結(jié)果用float和int輸出值差1.
答案:3??信息版本:手機版
解決時間 2018-12-08 22:35
已解決
2018-12-08 05:38
c語言同一題目求解結(jié)果用float和int輸出值差1.
最佳答案
2018-12-08 06:01
試試這樣就好了
#include main()
{
long i;
float j,j1,j2,j4,j6,j10;
j1=100000*0.1;
j2=j1+100000*0.075;
j4=j2+200000*0.05;
j6=j4+200000*0.03;
j10=j6+400000*0.015;
scanf("%ld",&i);
if(i<=100000)
j=i*0.1;
else if(i<=200000)
j=j1+(i-100000)*0.075;
else if(i<=400000)
j=j2+(i-200000)*0.05;
else if(i<=600000)
j=j4+(i-400000)*0.03;
else if(i<=1000000)
j=j6+(i-600000)*0.015;
else
j=j10+(i-1000000)*0.01;
printf("%ld\n",long(j));
}
i根本不需要long型。用int就夠了。
#include main()
{
int i;
float j,j1,j2,j4,j6,j10;
j1=100000*0.1;
j2=j1+100000*0.075;
j4=j2+200000*0.05;
j6=j4+200000*0.03;
j10=j6+400000*0.015;
scanf("%ld",&i);
if(i<=100000)
j=i*0.1;
else if(i<=200000)
j=j1+(i-100000)*0.075;
else if(i<=400000)
j=j2+(i-200000)*0.05;
else if(i<=600000)
j=j4+(i-400000)*0.03;
else if(i<=1000000)
j=j6+(i-600000)*0.015;
else
j=j10+(i-1000000)*0.01;
printf("%d\n",long(j));
}
輸出結(jié)果正確。追問哦,謝謝,這個是強制轉(zhuǎn)換嗎?追答恩,是的。
全部回答
1樓
2018-12-08 07:27
這不是樹上的例題嗎?追問嗯,但是我們老師要求輸出整數(shù)啊,不要留小數(shù)點,我我用整數(shù)輸出的值要差1.
2樓
2018-12-08 07:16
float 是但精確度
double 是雙精確度
int是整數(shù)
用float 和double 的時候輸出的時候最好加上小數(shù)點像是
printf("%lf.2",a);
就精確到了2 位小數(shù)。。
float輸出17500.000000 這是電腦默認的
如果我想輸出17500的整數(shù)。。。。。這是你的公式計算吧,跟你用的float 和int 無關(guān)。。。追問但用int輸出時是17499,差1怎么回事?追答我運行了下第二個是17500啊。。追問
我用c-free5運行就這樣啊追答
我的正常啊。。。CFREE3.5的追問奇怪,,,不過謝謝你哦
我要舉報
如果感覺以上信息為低俗/不良/侵權(quán)的信息,可以點下面鏈接進行舉報,我們會做出相應(yīng)處理,感謝你的支持!
大家都在看
推薦資訊
總結(jié)
以上是生活随笔為你收集整理的c语言float输出分数,c语言同一题目求解结果用float和int输出值差1.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【mmdetection3d】——学习配
- 下一篇: 2018-2019-2 20165212