आज मैंने सी ++ 11 एसटीएल के कुछ नए कार्यों की कोशिश की और std::to_string
का सामना किया।सी ++ 11 std :: to_string (डबल) - कोई पिछला शून्य शून्य नहीं
लवली, कार्यों का प्यारा सेट। सिर्फ एक डबल-से-स्ट्रिंग रूपांतरण के लिए एक stringstream वस्तु बनाना हमेशा मुझसे overkill लग रहा था, इसलिए हम अब कुछ इस तरह कर सकते हैं मुझे खुशी है:
std::cout << std::to_string(0.33) << std::endl;
परिणाम?
0.330000
मुझे लगता है कि पूरी तरह से सामग्री नहीं हूँ। पिछला शून्य छोड़ने के लिए std::to_string
बताने का कोई तरीका है? मैंने इंटरनेट की खोज की, लेकिन जहां तक मैं देख सकता हूं कि फ़ंक्शन केवल एक तर्क (परिवर्तित होने वाला मान) लेता है। स्ट्रिंगस्ट्रीम के साथ 'पुराने दिनों' में वापस, आप स्ट्रीम की चौड़ाई निर्धारित कर सकते हैं, लेकिन मैं वापस परिवर्तित नहीं करना चाहूंगा।
किसी को भी इस समस्या का सामना करने से पहले समाधान मिला है? कुछ StackOverflow खोजों में कुछ भी नहीं मिला।
(ए सी ++ 11 एसटीएल संदर्भ: http://en.cppreference.com/w/cpp/string/basic_string/to_string)
@chris: 'std :: to_string' पर कॉल के बाद नहीं। यह एक स्ट्रिंग देता है, संख्या नहीं, और इसकी स्वरूपण को संशोधित करना मुश्किल लगता है। – rubenvb
@ रूबेनव, शूट, मैं ठीक से सोच नहीं रहा हूं, क्या मैं ... – chris
"लवली, कार्यों का प्यारा सेट। केवल एक डबल-टू-स्ट्रिंग रूपांतरण के लिए स्ट्रिंगस्ट्रीम ऑब्जेक्ट बनाना हमेशा मुझे लगता है"। और फिर आप देखते हैं कि यह वास्तव में क्यों अधिक नहीं है - यह धाराएं हैं जिनमें प्रारूप निर्दिष्ट करने के लिए सभी बुनियादी ढांचे शामिल हैं। जो भी आप चाहते हैं उसे प्राप्त करने के लिए, 'to_string' को समकक्ष एपीआई में सभी को डुप्लिकेट करना होगा। जो एक भयानक विचार नहीं हो सकता है, लेकिन यह विचार नहीं है कि समिति के साथ चला गया। 'To_string' का कारण प्यारा है कि इसमें कोई विकल्प नहीं है ;-) –