使用不同的int变量格式化float小数位

时间:2017-10-23 17:39:41

标签: python python-2.7 printing format

基本上,我正在进行一段时间的迭代计算,并且我希望在每个循环传递中输出的时间值的精度可以根据我的预定义参数而变化。假设我将此作为我预定义的时间步骤使用:

tstep = 0.5 # seconds

所以我想输出:

iteration 1:   time = 0.0 s
iteration 2:   time = 0.5 s
iteration 3:   time = 1.0 s

等等。但是,让我说我改变我的时间步骤:

tstep = 0.25 # seconds

现在我想要输出以下内容:

iteration 1: time = 0.00 s
iteration 2: time = 0.25 s
iteration 3: time = 0.50 s

等等。以下是我直觉认为可行的方法:

dec = len(str(tstep)[(str(tstep).find('.')+1):]) # Decimal places defined in tstep variable

t = 0.
count = 1
while t <= 5.:
    print 'iteration %d: time = %.%d%f' % (count, dec, t)
    t += tstep
    count += 1

但这不起作用。有没有人有可能解决这个问题?可能是我不考虑的另一种格式化方式?我不想仅使用%g,因为输出不是那么干净。提前谢谢!

1 个答案:

答案 0 :(得分:-1)

使用此:print 'iteration ', count+1,': time=',t,'s'