假设我可以将浮点数视为某种类型的dict,其中键的范围从-infinity到无穷大,值是这些位置的数字。也就是说,f [i]将返回最接近(f % 10**(i+1) - f % 10**i) / 10**i
的整数。
例如,如果f=1234.5678
,f[-1] == 5
和f[2] == 2
。
此外:想象浮点数也会支持一些奇怪的图像切片形式(即使它不是一个列表,就像它不是一个字典),所以在我们的示例中f[-1:2] == 345
。
出于实际原因我需要这个,我需要快速完成。我想我可以写一些笨拙的东西,基于我在第一段写的表达式(它返回一个浮点数,浮点数的所有问题,我应该小心地转换为整数)。
所以我想知道是否有一些更简单,或者至少更优雅,快速的解决方案(性能是一个问题),它不涉及decimal
等库
值得一提的是,我没有采用模拟__getitem__
或切片表示法的解决方案。函数def getslice(f, a, b)
非常好。
答案 0 :(得分:2)
您可以将其更改为字符串。
mystr = str(num)
然后通过'。'的位置在mystr
:
mystr[pos+index]
是你需要的,其中index是你在浮点之前和之后定义位置的方式。