我想用C++計算65^17。 我寫了下面的代碼,但65^11時出現錯誤值。 什麼是計算答案的正確方法? (即65^17)C++:正確的方式來計算功率大沒有
代碼:
long double data= 1;
int m_ne=17;
int i_data=65;
for(int i=1;i<= m_ne;i++)
{
data = data * (i_data);
std::cout.precision(15);
std::cout<<" "<<std::fixed <<data<<std::endl;
}
輸出:
65.000000000000000
4225.000000000000000
274625.000000000000000
17850625.000000000000000
1160290625.000000000000000
75418890625.000000000000000
4902227890625.000000000000000
318644812890625.000000000000000
20711912837890625.000000000000000
1346274334462890625.000000000000000
87507831740087890624.000000000000000
我妄圖
1. data = floor(data +0.5) * i_data ;
2. data = floor(data +0.5) * floor (i_data + 0.5) ;
By declaring i_data as float .
3.
data = data * i_data ;
data = floor (data + 0.5)
我讀張貼關於雙下面的選項,但所有,但我沒有得到解決方案。
支持四路數學不是標準,什麼是編譯器?它是GCC嗎? – Mikhail
此外:http://gcc.gnu.org/onlinedocs/libquadmath.pdf – Mikhail