तो मैं कंप्यूटिंग प्रतियोगिता में था और मैंने एक अजीब बग देखा। पाउ (26,2) हमेशा 675, और कभी-कभी 674 वापस आ जाएगा? भले ही सही उत्तर 676 है। इस प्रकार की त्रुटियां भी पाउ (26,3), पाउ (26,4) आदि के साथ होती हैं, प्रतियोगिता के बाद कुछ डिबगिंग के बाद मुझे लगता है कि उत्तर को वास्तविक अंतराल के साथ करना है। दिलचस्प बात यह है कि इस तरह की त्रुटि पहले कभी नहीं हुई है। मैं जो कंप्यूटर विंडोज 8 पर mingw चला रहा था। जीसीसी संस्करण काफी नया था, 2-3 महीने की उम्र में मुझे विश्वास है। लेकिन मुझे जो मिला वह यह था कि अगर मैंने इस प्रकार की त्रुटि पर ओ 1/ओ 2/ओ 3 ऑप्टिमाइज़ेशन ध्वज बदल दिया तो चमत्कारिक रूप से गायब हो जाएगा। पाउ (26,2) हमेशा 676 उर्फ सही उत्तर मिलेगा क्या कोई बता सकता है क्यों?जीसीसी सी ++ पावर सटीकता
#include <cmath>
#include <iostream>
using namespace std;
int main() {
cout<<pow(26,2)<<endl;
cout<<int(pow(26,2))<<endl;
}
युगल के साथ परिणाम अजीब हैं।
double a=26;
double b=2;
cout<<int(pow(a,b))<<endl; #outputs 675
cout<<int(pow(26.0,2.0))<<endl; # outputs 676
cout<<int(pow(26*1.00,2*1.00))<<endl; # outputs 676
'पाउ (26,2)' 26 * 26 = 676 में? –
हाँ, पावर मानक पावर फ़ंक्शन के रूप में। –
क्या आप अपना कोड पोस्ट कर सकते हैं? मुझे यकीन नहीं है कि आप इन मानों को कैसे प्राप्त करेंगे। –