[問題] double輸出問題

看板C_and_CPP (C/C++)作者 ( )時間16年前 (2010/03/22 23:58), 編輯推噓3(309)
留言12則, 2人參與, 最新討論串1/1
一個小程式語法如下 double a = 10.0; double b = 15.0; a *= 2.5; // (1) a = ? b /= 3; // (2) b = ? 問題是上述二行分別執行的答案 這邊要請問的是, 請問(1)的a是25還是25.0 我用vc的cout輸出,會是一個整數25 但利用中斷點去檢查,會發現a是一個小數25.0 但輸出就變成一個整數了 請問若題目這樣出,應該要寫25還是25.0呢? 另外,像(2)的"b /= 3",等價於"b = b / 3" 在這邊,b是double,3是integer 那這樣做除法是不是應該直接用integer作, 也就是直接得到5,而不是5.0? 在此先謝謝各位。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.248.61

03/23 00:00, , 1F
1.沒有要求輸出格式剛好又是整數 所以會輸出25阿 題目這
03/23 00:00, 1F

03/23 00:00, , 2F
樣出的話,我會覺得這是蠻無聊的題目,不知道要寫哪個
03/23 00:00, 2F

03/23 00:01, , 3F
2.他會轉成int除 所以除完會變成5 再轉成double 5.0
03/23 00:01, 3F

03/23 00:01, , 4F
丟給b,有implicit conversion
03/23 00:01, 4F

03/23 00:03, , 5F
請問2.除完變成5後,為什麼會再轉成double呢?謝謝你
03/23 00:03, 5F

03/23 00:04, , 6F
b的型態是double阿
03/23 00:04, 6F

03/23 00:07, , 7F
對喔!謝謝你喔~
03/23 00:07, 7F

03/23 00:12, , 8F
疑等等 2.好像是3會轉成double,有點忘了
03/23 00:12, 8F

03/23 00:15, , 9F
沒錯我講錯了= = 太久沒寫記反了 Orz|| 2.不會轉成int
03/23 00:15, 9F

03/23 00:16, , 10F
對不起! 學藝不精 我去面壁 ||Orz
03/23 00:16, 10F

03/23 00:17, , 11F
XD 沒關係~總之輸出是5.0沒錯吧~謝謝你耶!
03/23 00:17, 11F

03/23 00:20, , 12F
是的 真的抱歉了 我把他跟另一個精確度的規則搞混了 Orz
03/23 00:20, 12F
文章代碼(AID): #1BfvEPBw (C_and_CPP)
文章代碼(AID): #1BfvEPBw (C_and_CPP)