[問題] 暈頭轉向的int and float
遇到的問題:
我預設讀Input的變數格式都是string (原則上數字都是非float為主)
但是程式中難免會計算 (可能會因此產生float)
於是要先從string 轉 float ==> float tmp = atof( str ) ;
/* aotf()會自動發現str是整數或是浮點數來處理
( ex: string -> float
122 -> 122
222.33 -> 222.33
)
*/
但是接下來計算完 要轉回字串時就發現問題了
sprintf( str, "%f", atof(str) * atof(str2) );
// 希望是如果是完全整數 就沒有後面小數點;是浮點後面就會有
但是最後答案發現 無論解答有無浮點 後面都會有~~~.XXX
( ex: 200 * 2 --> 400.000 ( str ) )
如果設定精準度 那萬一答案是浮點 恐怕又會影響答案
希望得到的正確結果:
能夠像atof()一樣會依照不同型別做處理
但是規定轉回字串一定要用sprintf() 不可用其他
(另一種好像不是標準函式庫的東西)
程式跑出來的錯誤結果:
希望是整數時 就不要有小數點後的東西
是浮點時 才要有後面
開發平台: VC, Windows
請大家多多指教 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.135.11.98
※ 編輯: suscym 來自: 140.135.11.98 (05/22 16:21)
※ 編輯: suscym 來自: 140.135.11.98 (05/22 16:47)
推
05/23 06:26, , 1F
05/23 06:26, 1F
推
05/23 11:28, , 2F
05/23 11:28, 2F
→
05/24 16:24, , 3F
05/24 16:24, 3F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章