繁体   English   中英

检查列表是否有 n 个连续值

[英]Check if list has n consecutive values

我正在使用 Python 制作一个包含小数点的基本转换器。 如果连续看到四个或更多 0,我试图使浮点结果自行结束。 但是,我不知道该怎么做。 这是我到目前为止的一个片段:

import math

num = 0.25
base = 4

x = list()

b = 0
c = 0
d = 0
a = 0

if isinstance(num, float) == True:
    x.append('.')
    while num != 0 or d <= 100:
        b = math.floor(num / (base ** a))
        x.append(b)
            
        num = num - (b * (base ** a))
        d += 1
        a -= 1

print(*x, sep="")

尽管此代码段的值是固定的,但如果我将num更改为10.4并将基数更改为10 ,我将得到10.400000000000000333066907387546967... (省略 200 位数字)。 我得到了大约 10-15 个正确的数字,但是在一系列零之后,出现了大量的“垃圾”数字。

如果我让num = 2.5base = 2 ,那么我得到10.10000000000000000000000 ,带有许多额外的尾随零。 在看到四个连续的 0 后,我需要清除这些额外的数字。 有没有办法做到这一点?

如果'num'是导致问题的数字,则您所要做的就是:

#form the output of the given code, 'x' has the value in the form of a list
#converting the list to string:
num=""
for digit in x:
    num+=str(digit)
y=float(num)
print (format(num, '.4f'))

这对我有用。 希望这对你有用...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM