日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言float输出分数,c语言同一题目求解结果用float和int输出值差1.

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言float输出分数,c语言同一题目求解结果用float和int输出值差1. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

c語言同一題目求解結果用float和int輸出值差1.

答案:3??信息版本:手機版

解決時間 2018-12-08 22:35

已解決

2018-12-08 05:38

c語言同一題目求解結果用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));

}

輸出結果正確。追問哦,謝謝,這個是強制轉換嗎?追答恩,是的。

全部回答

1樓

2018-12-08 07:27

這不是樹上的例題嗎?追問嗯,但是我們老師要求輸出整數啊,不要留小數點,我我用整數輸出的值要差1.

2樓

2018-12-08 07:16

float 是但精確度

double 是雙精確度

int是整數

用float 和double 的時候輸出的時候最好加上小數點像是

printf("%lf.2",a);

就精確到了2 位小數。。

float輸出17500.000000 這是電腦默認的

如果我想輸出17500的整數。。。。。這是你的公式計算吧,跟你用的float 和int 無關。。。追問但用int輸出時是17499,差1怎么回事?追答我運行了下第二個是17500啊。。追問

我用c-free5運行就這樣啊追答

我的正常啊。。。CFREE3.5的追問奇怪,,,不過謝謝你哦

我要舉報

如果感覺以上信息為低俗/不良/侵權的信息,可以點下面鏈接進行舉報,我們會做出相應處理,感謝你的支持!

大家都在看

推薦資訊

總結

以上是生活随笔為你收集整理的c语言float输出分数,c语言同一题目求解结果用float和int输出值差1.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。