मैं हाल ही में सी ++ में प्रोग्रामिंग के बारे में सीखने में दिलचस्पी लेता हूं, क्योंकि मैं कम्प्यूटर के काम करने और निर्देशों को संभालने के तरीके की गहरी समझ लेना चाहता हूं। मैंने सोचा कि मैं बाहर डेटा प्रकारक्या मैं एक लंबी डबल का उपयोग कर रहा हूं?
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
float fValue = 123.456789;
cout << setprecision(20) << fixed << fValue << endl;
cout << "Size of float: " << sizeof(float) << endl;
double dValue = 123.456789;
cout << setprecision(20) << fixed << dValue << endl;
cout << "Size of double: " << sizeof(double) << endl;
long double lValue = 123.456789;
cout << setprecision(20) << fixed << lValue << endl;
cout << "Size of long double: " << sizeof(long double) << endl;
return 0;
}
उत्पादन मैं की तरह कुछ हो जाएगा उम्मीद की कोशिश करेंगे, लेकिन मैं वास्तव में समझ में नहीं आता कि मेरी उत्पादन के साथ क्या हो रहा है ...:
123.45678710937500000000
Size of float: 4
123.45678900000000000000
Size of double: 8
123.45678900000000000000
Size of long double: 16
यह वह जगह है मेरा वास्तविक आउटपुट:
123.45678710937500000000
Size of float: 4
123.45678900000000000000
Size of double: 8
-6518427077408613100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00000000000000000000
Size of long double: 12
जो हुआ उसके बारे में कोई भी विचार बहुत सराहना की जाएगी, धन्यवाद!
संपादित करें:
System:
Windows 10 Pro Technical Preview
64-bit Operating System, x64-based processor
Eclipse CDT 8.5
पुन: उत्पन्न नहीं कर सकता है। आप किस कंपाइलर का उपयोग कर रहे हैं? –
'लंबे डबल' का आकार कंपाइलर और हार्डवेयर द्वारा भिन्न होता है। आकार 8, 12, और 16 ज्ञात हैं। जो आप आकार के रूप में देख रहे हैं वह पूरी तरह से उचित है, भले ही यह आपकी अपेक्षा न हो। स्वरूपित आउटपुट इतना उचित नहीं है, हालांकि। –
FWIW (जो लगभग कुछ भी नहीं है), 4.9.1 पैदावार जीसीसी के साथ पर मैक ओएस एक्स 10.10.2 अपने कोड चलाने: '123.45678710937500000000 नाव के आकार: 4 123.45678900000000055570 डबल का आकार: 8 123.45678900000000055570 लंबे डबल का आकार: 16'। 'फ्लोट' मान में 'एफ' प्रत्यय जोड़ना और' लम्बी डबल 'मान के लिए' एल' प्रत्यय 'फ्लोट' या 'डबल' आउटपुट में कोई फर्क नहीं पड़ता है, लेकिन 'लंबे डबल' आउटपुट को इसमें बदलता है: '123.45678900000000000059 लंबे समय का आकार: 16', जो बेहतर सटीकता दिखाता है। –