0

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

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

答案为零,但在 .###### 之后寻找 .###### 数字。

抱歉试试这个

4

2 回答 2

0

看起来您在 python 2.x 中被整数除法所困扰。

>>> a= 6500
>>> b= 3600
>>> c=.000900
>>> from __future__ import division
>>> print b/a - c
0.552946153846
于 2013-02-11T02:22:22.003 回答
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)
于 2013-02-11T02:22:29.740 回答