Re: [問題] 判斷是否為整數

看板C_and_CPP (C/C++)作者 (潑文章都是為了養小雞)時間18年前 (2006/08/02 20:01), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
噢! 我認為這會有一個問題 (雖然我沒遇過, 但是MFC的老師有提過)..... 浮點數的零有可能是極小的值(極小的正數 或極大的負數 總之就是相當接近零) 比如考慮以下的情況 float f = 20.0/3.0; f = f*3.0 -20.0; if(f == 0.0) { // 可能永遠不會成立.... } 像這種情況 我認為有需要特別去處理..... (假想啦 我真的沒有遇過) ※ 引述《slanla (slanla)》之銘言: : ※ 引述《CMJ0121 (請多指教!!)》之銘言: : : 在C++中 : : 有沒有函數 : : 是判斷使用者輸入的是否為整數 : : 以此類推拉 : : 謝謝! : 痾要看型態吧... : 若是要判斷float是不是整數...可以考慮這個... : float a=3.5; : if(a==int(a)) : { : //這是整數..... : } : 若是字串...就又有其他延伸的方法.... : eg.. atoi(),atof() ...等等.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.208.249 ※ 編輯: jaw109 來自: 61.64.208.249 (08/02 20:08)

08/02 21:35, , 1F
你的疑慮是對的,比對浮點數相等不該用 == 來直接比
08/02 21:35, 1F

08/02 21:36, , 2F
通常會有一個誤差容許範圍,在該範圍內可視為相等
08/02 21:36, 2F
文章代碼(AID): #14q9G9p4 (C_and_CPP)
文章代碼(AID): #14q9G9p4 (C_and_CPP)