[問題] pow() powf() 算float算錯?
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
MinGW g++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
我有天剛好需要算到98的5次方時,想說使用cmath/math.h的 pow()函式來運算
發現float的98^5竟然和double的98^5算出來不一樣,直接差在整數位
可是後來去查,發現pow也有float的overloading呀
之後又試了powf(),發現結果還是一樣錯....用codepad跑過也是一樣錯...
後來又用了cmath和math.h都試了也是一樣,不知是否是我誤用?
如果是的話,要怎麼正確對單精度浮點數作指數運算呢?
餵入的資料(Input):
98.0f的 5.0f 次方
預期的正確結果(Expected Output):
9039207968.000000
錯誤結果(Wrong Output):
9039208448.000000
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/sdqGxWaH
補充說明(Supplement):
詳細就如codepad連結
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.20.69
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1431106642.A.F10.html
推
05/09 01:40, , 1F
05/09 01:40, 1F
→
05/09 01:44, , 2F
05/09 01:44, 2F
→
05/09 01:47, , 3F
05/09 01:47, 3F
→
05/09 01:59, , 4F
05/09 01:59, 4F
→
05/09 02:01, , 5F
05/09 02:01, 5F
→
05/09 02:03, , 6F
05/09 02:03, 6F
→
05/09 02:06, , 7F
05/09 02:06, 7F
→
05/09 02:07, , 8F
05/09 02:07, 8F
→
05/09 02:08, , 9F
05/09 02:08, 9F
→
05/09 02:14, , 10F
05/09 02:14, 10F
→
05/09 02:16, , 11F
05/09 02:16, 11F
推
05/09 05:28, , 12F
05/09 05:28, 12F
→
05/09 05:28, , 13F
05/09 05:28, 13F
→
05/09 05:29, , 14F
05/09 05:29, 14F
→
05/09 05:31, , 15F
05/09 05:31, 15F
→
05/10 22:49, , 16F
05/10 22:49, 16F
→
05/10 22:49, , 17F
05/10 22:49, 17F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章