在Python中,如何获得表示为int的浮点数的前N​​个十进制数字?

例如,如果我有:

12.43564

我希望能够得到43564作为int。或者,如果浮点数有很多小数位,那么只将前 N 位小数作为整数就可以了。

例如,如果 N 是312.43564那么我会得到435

有没有办法做到这一点?

更新:我无法转换为字符串。原因是我在 Numba 编译函数中需要这个,并且由于这个开放问题,在这种情况下不可能将浮点数转换为字符串:https : //github.com/numba/numba/issues/4758

回答

将其类型转换为字符串,在句点上拆分,获得您想要的 N 位数字。

>>> x = 1.23456789
str(x)
>>> str(x)
'1.23456789'
>>> str(x).split('.')
['1', '23456789']
>>> str(x).split('.')[1][:4]
'2345'

根据编辑,

减去 int 部分。乘以 10000 得到前 4。

>>> (x - int(x)) * 10000
2345.678899999999
>>> int((x - int(x)) * 10000)
2345

  • @EdyBourne 修改以说明编辑。
  • 查看:https://numpy.org/doc/stable/reference/generated/numpy.modf.html

以上是在Python中,如何获得表示为int的浮点数的前N​​个十进制数字?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>