将字符串格式化为微秒

时间:2013-02-11 02:00:27

标签: python math formatting

希望格式化输出以显示非常小的数字..

a= 6500
b= 3600
c=.000900
d= int((b/a)-c)
print d

答案是零,但在。

之后寻找。######数字 抱歉试试这个

2 个答案:

答案 0 :(得分:0)

看起来你在python 2.x中遇到了整数除法。

>>> a= 6500
>>> b= 3600
>>> c=.000900
>>> from __future__ import division
>>> print b/a - c
0.552946153846

答案 1 :(得分:0)

您的计算可能存在两个问题:

如果您使用的是Python 2,则在两个整数之间使用/的除法也将始终为整数。这将丢弃计算的小数部分,这可能是意外的。对此的一个解决方法是强制其中一个值为float值(例如float(b)/a)。另一种方法是放在文件的顶部from __future__ import division,它告诉Python使用Python 3语义进行除法(如果结果是精确整数,则只能从整数除法得到一个整数)。

第二个问题似乎是关于格式化浮点值。首先,您似乎只想要值的小数部分(不是整数部分)。通常最好的选择是简单地减去值的整数部分:

d = someFloatingPointValue()
d_frac = d - int(d)

接下来,要获取要输出的字符串(您需要几个小数位,但不是大量的小数位),您可能想要探索Python的字符串格式化操作:

d = someFloatingPointValue()
d_to4decimalPlaces = "{:.4f}".format(d)