'da negatif sıfır nasıl yazdırılır DMS olarak yazdırmak için ondalık dereceler dönüştürüyorum. Dönüşüm algoritması, modf kullanarak, MS kısmından işaretin çıkarılması ve sadece D kısmı için bırakılması ile birlikte beklediğiniz şeydir.Python
Derece sıfırın sıfır olduğu durum hariç her şey yolunda, -0. Bir örnek
. '% D' eksi işareti damla olarak -0 23'29" ° yazdırmak hangi -0,391612 olduğunu. Ben de burada çalıştığım -0?
yazdırmak için kullanabileceğiniz ne biçim dizesi . "-" dizeleri numaralar çevirir ve bir başa ekler bir kludge ile negatif ise, o zaman "% s" biçimi olarak kullandığı bu garip ve hissediyor inelegant İşte
kod:def dec_to_DMS(decimal_deg):
deg = modf(decimal_deg)[1]
deg_ = fabs(modf(decimal_deg)[0])
min = modf(deg_ * 60)[1]
min_ = modf(deg_ * 60)[0]
sec = modf(min_ * 60)[1]
return deg,min,sec
def print_DMS(dms): # dms is a tuple
# make sure the "-" is printed for -0.xxx
format = ("-" if copysign(1,dms[0]) < 0 else "") + "%d°%02d'%02d\""
return format % dms
print print_DMS(dec_to_DMS(-0.391612))
>>> -0°23'29"
. deg_
geri dönen işlevi önlemek için (-0, -23, -29), doğru döndürür (- 0,23,29). 2 tamamlayıcı tamsayılar (çoğu platformlarda kullanılan) olarak
probleminden minimum örnek kod gösterin. – languitar
+1, çünkü 'modf' kullanmak her şeyi oldukça zarif yapmalıdır –