剛在作C的題目,要求Armstrong數

需要求x的3次方,我就用了math.h 裡的pow()這個函數:pow(x,3)

結果答案一直不對,debug之後發現

pow(5,3)的回傳值居然不是125!!! 而是124!!!

這個結果實在是太令我震驚了!!!

上網一查,原來pow的參數類型是:pow(double ,double)

是雙精度浮點數啊啊啊!!意思就是一定會有誤差!!!

 

被暗算到的我,決定乖乖用 x*x*x 來解決這個問題

zzz

===

寫個程式跑跑看  i =1~100,求 i 平方,直接乘 ( i * i )跟 使用 Pow() 來做,不同的情況有多少

 

結果如下:超多不一樣的-.- 太長就不全部貼出來了

比較sum(用整數 i * i 的方法做的)跟 powpow (用pow ( ) 函數作的)

結果都差1...

果然,如果要求 ( 整數 的 整數 次方 ),還是要乖乖的使用 i * i * i * i.....的形式

 

 

arrow
arrow
    文章標籤
    pow C語言
    全站熱搜

    迷途工程師 發表在 痞客邦 留言(0) 人氣()