scipy 将Betwixt(Between)字符串转换为整型数据类型

w3nuxt5m  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(129)

我试图转换木星的距离,这是在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

nmpmafwu

nmpmafwu1#

尝试使用int(radec[2].au)而不是int(str(radec[2])),使其变为:

int(constants.light_year / constants.astronomical_unit) * int(radec[2].au))

如果打印出来,就会得到252964

**注意:**您应该考虑在浮点数上进行所有计算,并在最后将答案转换为int:

print(int(float(constants.light_year / constants.astronomical_unit) * float(radec[2].au)))

得到293505

dgjrabp2

dgjrabp22#

尝试将radec[2]的字符串值转换为浮点数,然后再将其转换为整数

int(constants.light_year / constants.astronomical_unit) * 
int(float(str(radec[2]).replace("au", "").strip()))

相关问题