मैं std::cout
पोर्टेबल (जीसीसी, क्लैंग, एमएसवीसी ++) के लिए एक डबल वैल्यू प्रिंट करना चाहता हूं ताकि आउटपुट सभी प्लेटफार्मों पर समान हो।डबल टू सी ++ iostreams के एक्सपोनेंट की पोर्टेबल प्रिंटिंग
मुझे एक्सपोनेंट के स्वरूपण में कोई समस्या है। मैं दोनों एक ही आउटपुट कैसे कर सकते हैं
1e-08
और MSVC
1e-008
साथ निम्नलिखित उत्पादन: निम्नलिखित कार्यक्रम
#include <iostream>
int main()
{
std::cout << 0.1e-7 << std::endl;
return 0;
}
जीसीसी के साथ इस उत्पादन गया है?
मुझे खेद है कि यह एक बेवकूफ सवाल है लेकिन मुझे अब तक कोई जवाब नहीं मिला है। सभी स्वरूपण अपूर्णांश से पहले सब कुछ के स्वरूपण के आसपास विकसित करने के लिए ...
संपादित लगता है: जीसीसी के उत्पादन 1e-08
नहीं 1e-8
(के रूप में मूल रूप से कहा गया है) तो यह है अनुरूप है। गलतफहमी के लिए खेद है।
EDIT2: डायटमार की टिप्पणी के बाद वास्तव में "मंथिसा" को "एक्सपोनेंट" नाम दिया गया। There also is a section on Wikipedia on mantissa vs. significant।
आप [manipulators] को देखा है मुद्रित करने के लिए कैसे (http://www.cplusplus.com/reference/iostream/manipulators/)? – razlebe
@razlebe: मुझे मैनिपुलेटर्स का उपयोग करने में कोई जवाब नहीं मिला। – Manuel
मुझे जीसीसी असंगत लगता है क्योंकि यह '1.e-08' और' 1.e-18' (दो अंक) प्रिंट करता है और फिर भी यह '1.e-256' (तीन अंक) प्रिंट करता है। मुझे एक स्ट्रीम लाइब्रेरी नहीं मिल सका जो इसे हल करता है (मैंने कोर्स के आईस्ट्रीम और बूस्ट.फॉर्मैट के साथ प्रयास किया)। इसलिए यदि कोई निश्चित चौड़ाई दोगुना करना चाहता है तो उसे एक्सपोनेंट के संभावित तीसरे अंक के लिए आरक्षित और अतिरिक्त जगह की आवश्यकता होती है। – alfC