如何展开一个长数字(以 e+## 结尾)以展开形式显示?

Arn*_*904 5 python numbers variable-length

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

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

def main():
    a = 12345678900000000
    b = 1.25

    answer = (a / b)
    print(answer)
main()
Run Code Online (Sandbox Code Playgroud)

这个特定示例的结果是 9.87654312e+15。如何让Python忽略简化我的数字并只给我整个数字?

预先感谢,抱歉,如果它真的很基本,我不会问我是否可以通过谷歌找到它。

Mar*_*ers 6

str()您将看到浮点数的默认转换正在工作。您可以通过显式设置数字格式来选择不同的转换。

format()函数可以为您执行此操作:

>>> n = 9.87654312e+15
>>> format(n, 'f')
'9876543120000000.000000'
Run Code Online (Sandbox Code Playgroud)

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

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

默认精度为.000000小数点后六位;您可以通过使用.<precision>f以下命令来更改此设置:

>>> format(n, '.1f')
'9876543120000000.0'
Run Code Online (Sandbox Code Playgroud)

但请考虑到小数点会四舍五入以适应所需的精度。

根据数字的大小,格式g在使用指数 ( e) 和f符号之间切换,但如果数字是整数,则不会包含小数;您可以使用非常大的精度来'g'避免完全打印小数:

>>> format(n, '.53g')
'9876543120000000'
Run Code Online (Sandbox Code Playgroud)

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