मुझे फोरट्रान में स्वरूपण विवरणों के आस-पास अपने सिर को लपेटने में कठिनाई हो रही है।फोरट्रान मेरे आउटपुट को तारों में विभाजित करता है - क्यों?
मेरी उत्पादन स्वरूपण बिना, इस मैं क्या है (एक पाश के अंदर है, तो यह कई बार होता है):
write(*,*) t*1E9
यहाँ t
real*8
है।
0.0000000000000000
0.10000000000000001
0.20000000000000001
0.29999999999999999
0.40000000000000002
0.50000000000000000
0.59999999999999998
0.69999999999999996
0.79999999999999993
0.89999999999999991
0.99999999999999989
अब, मैं एक प्रारूप बयान को जोड़ने का प्रयास:
write(*, '(F1.2)') t*1E9
और (सब कुछ एक ही साथ, 0.1 की दर से वृद्धि कुछ गोलाई त्रुटियों के साथ - उत्पादन मैं सिर्फ क्या उम्मीद थी है) के बजाय मैं अपने उत्पादन में केवल तारक मिलती है:
**
**
(etc...)
मैं यह कैसे काम करना चाहिए पर पढ़ने के लिए कोशिश की है, और मैं समझ नहीं क्यों यह हो रहा है। मैंने अंकों के लिए अधिक जगह के साथ प्रारूपों का प्रयास किया है (F15.15
सिर्फ मुझे प्रति पंक्ति अधिक तारांकन देता है), मैंने प्रारूप विवरण को अपनी खुद की लेबल लाइन पर ले जाने की कोशिश की है ... मुझे लगता है कि मैं आउटपुट प्राप्त नहीं कर सकता हूं। पसंद।
मुझे यहां क्या याद आ रही है?
Fw.d
, जहां डब्ल्यू वर्णों की संख्या कुल में इस्तेमाल किया जा रहा है, और घ दशमलव बिंदु के बाद वर्णों की संख्या है:
धन्यवाद! यह बहुत समझाता है =) हालांकि, यह मेरी मदद नहीं करता है - जब मैं एक ही सिद्धांत लागू करता हूं, हालांकि उदा। 'E5.4', अन्य युगल (यानी 'असली * 8') के लिए, परिमाण 1e-2 - 1e-3 के क्रम के साथ एक स्तंभ और परिमाण 1e2 के क्रम में एक, यह उन स्तंभों के लिए मेड तारांकन देता है (समय कॉलम अपेक्षित के रूप में काम करता है)। इस समय मेरा पूरा प्रारूप स्ट्रिंग: 'एफ 4.2, ई 10.8, ई 10.8'। –
ई प्रारूप के लिए फ़ील्डविड्थ decimals की संख्या से कम से कम 7 अधिक होना चाहिए, उदाहरण के लिए E15.8। एक्सपोनेंट के लिए चार, लीड के लिए दो 0. एक संभावित '-' के लिए। मैं आमतौर पर एक और अतिरिक्त जगह जोड़ता हूं इसलिए संख्याएं एक साथ नहीं चलती हैं, E16.8 .. – agentp
यह बताती है - धन्यवाद! –