Kafamı Fortran'daki biçimlendirme ifadeleri etrafına dolamakta zorlanıyorum. Benim biçimlendirme çıkışı olmadanFortran, çıkışımı yıldızlara uyarıyor - neden?
, bu benim yaptığım (bir döngü içinde, bu yüzden bu bir kaç kez olur): Burada
write(*,*) t*1E9
t
real*8
olduğunu. Çıktı Ben sadece ne beklediğiniz olduğunu - 0,1 artışlarla, bazı yuvarlama hataları ile:
0.0000000000000000
0.10000000000000001
0.20000000000000001
0.29999999999999999
0.40000000000000002
0.50000000000000000
0.59999999999999998
0.69999999999999996
0.79999999999999993
0.89999999999999991
0.99999999999999989
Şimdi, bir biçim deyimi eklemeyi deneyin:
write(*, '(F1.2)') t*1E9
ve (her şeyden aynı olan Bu işe nasıl üzerinde okumak için denedim
**
**
(etc...)
ve bu neden oluyor bilemiyorum:) yerine benim çıktısında sadece yıldız işaretleri olsun. Basamaklar için daha fazla alan içeren biçimleri denedim (F15.15
sadece her satırda daha fazla yıldız işareti veriyor), biçim ifadesini kendi etiketli satırına taşımaya çalıştım ... Ben sadece çıktıyı elde edemiyorum. D gibi.
Burada nelerin eksik? w karakter sayısı toplam kullanılmak üzere ve d, ondalık noktadan sonra karakter sayısıdır
Fw.d
:
Teşekkürler! Bu bir çok şeyi açıklıyor =) Ancak, aynı prensipleri uygularken, örneğin, E5.4, diğer çiftler için (yani 'real * 8's), 1e-2 - 1e-3 büyüklükleri ve 1e2 büyüklük sırasına göre bir sütun ile, bu sütunlar için med yıldız işaretleri verir. sütun beklendiği gibi çalışır). Şu andaki tüm biçim dizgisi: 'F4.2, E10.8, E10.8'. –
E formatı için, alan genişliği ondalık sayılardan en az 7 daha fazla olmalıdır, örn. E15.8. Üs için dört, ikisi kurşun için 0. Bir olası '-' için. Genellikle bir tane daha fazla boşluk ekledim, böylece sayılar birlikte çalışmıyor, E16.8 .. – agentp
Bunu açıklıyor - teşekkürler! –