gpt4 book ai didi

python - 如何在 Python 中打印负零

转载 作者:太空狗 更新时间:2023-10-29 19:36:01 25 4
gpt4 key购买 nike

我正在转换十进制度数以打印为 DMS。转换算法是您所期望的,使用 modf,此外符号从 MS 部分中取出并仅保留用于 D 部分。

除了 Degree 为负零 (-0) 的情况外,一切都很好。一个示例是 -0.391612,它应该打印为 -0°23'29"。

"%d"去掉负号。我可以使用什么格式的字符串来打印 -0?

我已经解决了这个问题,将数字转换为字符串并在负数前添加“-”,然后使用“%s”作为格式。这很尴尬,感觉不优雅。

代码如下:

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_ 是为了防止函数返回(-0,-23,-29);它返回正确的 (-0,23,29)。

最佳答案

使用format()

>>> format(-0.0)
'-0.0'
>>> format(0.0)
'0.0'


>>> print '''{: g}°{}'{}"'''.format(-0.0, 23, 29)
-0°23'29"

关于python - 如何在 Python 中打印负零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16733821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com