4

所以,这可能是一个简单的问题,但我在任何地方都找不到答案。

举个例子,我有一个简单的程序,我想将 a 除以 b,如下所示:

def main():
    a = 12345678900000000
    b = 1.25

    answer = (a / b)
    print(answer)
main()

这个特定的例子会产生 9.87654312e+15。如何让 Python 忽略简化我的数字而只给我整数?

提前谢谢,对不起,如果它真的很基本,我不会问我是否可以通过谷歌找到它。

4

2 回答 2

4

您正在str()工作中看到浮点数的默认转换。您可以通过明确格式化数字来选择不同的转换。

format()功能可以为您执行此操作:

>>> n = 9.87654312e+15
>>> format(n, 'f')
'9876543120000000.000000'

有关更多选项,请参阅格式规范迷你语言文档。'f'格式只是以下几种之一:

固定点。将数字显示为定点数。默认精度为 6。

默认精度导致.000000小数点后六位;您可以.<precision>f改用:

>>> format(n, '.1f')
'9876543120000000.0'

但要考虑到小数会四舍五入以适应要求的精度。

格式在使用指数 ( ) 和符号g之间切换,具体取决于数字的大小,但如果数字是整数,则不包括小数;您可以使用非常的精度来完全避免打印小数:ef'g'

>>> format(n, '.53g')
'9876543120000000'

明确地说,str(n)是相同的format(n, '.12g')repr(n)format(n, '.17g');当指数大于精度时,两者都可以使用指数格式。

于 2014-05-31T13:11:55.077 回答
1

只是更具体地了解浮点格式

>>> print answer
9.87654312e+15
>>> print "%.20f" % answer
9876543120000000.00000000000000000000
于 2014-05-31T13:11:17.973 回答