我试图转换木星的距离,这是在Au(天文单位)光年,我使用预先存在的模块,这意味着你没有偏好的数据类型,我有以下错误。
我正在使用模块Skyfield(具体来说是API)和Scipy我的代码:
from scipy import constants
from skyfield.api import load
planets = load('de421.bsp')
earth, jupiter = planets['earth'], planets['JUPITER BARYCENTER']
ts = load.timescale()
t = ts.now()
astrometric = earth.at(t).observe(jupiter)
radec=astrometric.radec()
# int(constants.astronomical_unit / constants.light_year ) * int(str(radec[2])
# Since the above line is not working i tried this:
int(constants.astronomical_unit / constants.light_year ) * int(str(radec[2]).replace("au", "").strip())
错误:
如果您有任何问题,请联系我们。如果您有问题,请联系我们。无效的int()文字,基数为10:'4.63954'
我起初认为空格可能是原因,但即使我应用了strip()
函数,错误仍然存在
我Python版本是Python 3.9.12
2条答案
按热度按时间nmpmafwu1#
尝试使用
int(radec[2].au)
而不是int(str(radec[2]))
,使其变为:如果打印出来,就会得到
252964
。**注意:**您应该考虑在浮点数上进行所有计算,并在最后将答案转换为int:
得到
293505
。dgjrabp22#
尝试将radec[2]的字符串值转换为浮点数,然后再将其转换为整数