[問題] 暈頭轉向的int and float

看板C_and_CPP (C/C++)作者 (DoDreamEr)時間16年前 (2010/05/22 16:20), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/2 (看更多)
遇到的問題: 我預設讀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
sprintf() 轉完再對 str 做去0處理
05/23 06:26, 1F

05/23 11:28, , 2F
strtok(str,".") 這樣就可以把400.000變成400了
05/23 11:28, 2F

05/24 16:24, , 3F
感謝各位!!
05/24 16:24, 3F
文章代碼(AID): #1BzvEqkG (C_and_CPP)
文章代碼(AID): #1BzvEqkG (C_and_CPP)