設定 EYNY 為首頁  |  加入我的最愛
伊莉討論區
熱門搜尋: 海角七號  海賊王  周杰倫  國境之南  狐狸與我  冏男孩  鷹眼  胡彥斌 


休閒聊天
學術文化
感情感性
興趣交流
家庭事務
旅遊交流
飲食交流
家族門派
貼圖分享
動漫交流
音樂世界
美容打扮
潮流資訊
影視娛樂
電玩遊戲
連線遊戲
網絡遊戲
交易廣場
下載分享
BT下載區
CB下載區
電腦資訊
數碼產品
手機交流
網站事務
體育運動
時事新聞
上班一族
博彩娛樂
成人話題


 
標題: [求助] double和int 資料轉換
qaz00336

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 774205
精華 0
積分 214
帖子 221
潛水 2478 米
閱讀權限 20
註冊 2007-2-3
發表於 2008-7-18 11:43 AM  資料 文集 短消息 
維克斯討論區

double和int 資料轉換

[顯示] [隱藏]
#include <stdio.h>

int main (void)
{
double a,b;

printf("請輸入身高\n");
scanf("%lf",&a);
printf("請輸入體重\n");
scanf("%lf",&b);

printf("身高為%f公分,體重為%f公斤\n",a,b);
return 0;
}

-----------------------------------------------------------------------------------------------------------------

以原這程式 本來是可以輸入浮點數的資料型式!

但我想改成 輸入可以為浮點數 輸出卻要是整數!
自動把小數點捨去! 但我怎麼用都不可以!

算是初學者的自行摸索吧!

拜託大大幫我改改看! 看是哪邊的問題!
謝謝!

[ 本帖最後由 qaz00336 於 2008-7-18 11:45 AM 編輯 ]

頂部
x0958671630x
(0o雪嬋o0)

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 1646662
精華 0
積分 303
帖子 241
潛水 1417 米
閱讀權限 20
註冊 2007-6-27
來自 高山雪域
發表於 2008-7-18 04:52 PM  資料 文集 短消息 
維克斯討論區

你好~ 我也是學程式的~

針對你的問題直接簡單回答

只要把輸出改成 %.0f 即可

也就是改成  printf("身高為%.0f公分,體重為%.0f公斤\n",a,b);

資料形態還是浮點數,但是強制小數以下不輸出

頂部
qaz00336

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 774205
精華 0
積分 214
帖子 221
潛水 2478 米
閱讀權限 20
註冊 2007-2-3
發表於 2008-7-18 06:04 PM  資料 文集 短消息 
維克斯討論區

%.0f 這樣算是什麼的資料轉換呀!?

我還沒看過這個! 可以解說一下嗎?

我有測試過了!
有點偏向4捨五入的用法!


但還是謝謝你告訴我這個方式!
至少多學到一個%.0f

頂部
x0958671630x
(0o雪嬋o0)

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 1646662
精華 0
積分 303
帖子 241
潛水 1417 米
閱讀權限 20
註冊 2007-6-27
來自 高山雪域
發表於 2008-7-18 06:29 PM  資料 文集 短消息 
伊莉部落格伊莉交友伊莉聊天伊莉相簿

那不是資料型態的轉換

所以還是浮點數型態的資料

只是讓他在輸出時,強制他小數之後輸出0個位元

那個方法也可以改成 %.1f(小數之後輸出1個位元)  %.2f(小數之後輸出2個位元) .....以此類推

如果需要強制無條件捨去或進位,也可以多加上數學函式 #include <math.h>

ceil(x) - 無條件進位 也就是不小於 x 最接近 x 的整數
floor(x) - 無條件捨去 也就是不大於 x 最接近 x 的整數

printf("身高為%.0f公分,體重為%.0f公斤\n", ceil(a), floor(b));


至於如果要強制轉換資料型態,可改成

printf("身高為%d公分,體重為%d公斤\n", (int)a, (int)b);

頂部
qaz00336

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 774205
精華 0
積分 214
帖子 221
潛水 2478 米
閱讀權限 20
註冊 2007-2-3
發表於 2008-7-18 11:01 PM  資料 文集 短消息 
維克斯討論區

懂了懂了!

大大真是太棒了!

不好意思讓您見笑了! 目前還在學習中!
還有很多不懂的地方!
有問題我還會再提出來的!
感謝大大幫我一個大忙 終於讓我弄懂了!

*printf("身高為%d公分,體重為%d公斤\n", (int)a, (int)b);*
再問一個問題
就是這一段程式!, (int)a<<<<前面為什麼要加空格  我沒有空格的時候是錯的!
轉換資料型態  那個前面就是要加控得就對了嗎?
算是C++的規則嗎?
 


原來可以這樣寫喔!
我之前都在前面就給她先宣告  
比方樣這樣寫的!
#include <stdio.h>

int main (void)
{
double a,b;
int c,d;

printf("請輸入身高\n");
scanf("%lf",&a);
printf("請輸入體重\n");
scanf("%lf",&b);

c = scanf("%lf",&a);    要不就這樣 c = a;
d = scanf("%lf",&b);                       d = b;

printf("身高為%d公分,體重為%d公斤\n",c,d);
return 0;
}

就像這樣自己亂推一通!  還好有發問   不然困禍死我了!

頂部
 




當前時區 GMT+8, 現在時間是 2008-10-13 09:24 AM

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.031813 second(s), 7 queries , Gzip enabled

清除 Cookies - 聯繫我們 - 廣告查詢 [威旭代理] - 伊莉討論區 - Archiver
重要聲明:本討論區是以即時上載留言的方式運作,伊莉討論區對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。伊莉討論區有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。