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



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

举个例子,我有一个简单的程序,我想用a除以b,像这样:

def main():
    a = 12345678900000000
    b = 1.25
    answer = (a / b)
    print(answer)
main()

这个特定的例子将得到9.87654312e+15。我怎样才能让Python忽略我的数的化简而只给我一个整数呢?

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

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

format()函数可以为您做这些:

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

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

定点。将号码显示为定点号码。默认精度为6。

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

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

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

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

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

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

更具体地说明浮点格式

>>> print answer
9.87654312e+15
>>> print "%.20f" % answer
9876543120000000.00000000000000000000

相关内容

  • 没有找到相关文章

最新更新