编程语言
首页 > 编程语言> > 在python3中防止数字的自动科学形式

在python3中防止数字的自动科学形式

作者:互联网

计算时是否可以不分配科学/标准表格编号?

例如,现在在我的代码的其中一行中有:
    数字= 10 ** 23 * 1.1

它应该计算为110000000000 …… 0或其他值,而是给我分配了1.1e 23,这很烦人,因为我试图将IEEE754转换为十进制并打印出特定内容,但由于科学记数法而无法正常工作的1.1e 23

香港专业教育学院试图环顾四周,但没有简单的简洁答案

解决方法:

默认情况下,您无法更改此设置.如果指数大于浮点数的精度,则显示浮点数时的默认行为始终是采用科学计数法.

更改此设置的唯一方法是通过另一种方法显式格式化它.如果您知道所显示数字的精度,则可以使用format

>>> number
1.1e+23
>>> format(number, 'f')
'110000000000000004194304.000000'
>>> format(number, '.0f')
'110000000000000004194304'

您也可以将其与格式字符串一起使用:

>>> 'The number is {:.0f}'.format(number)
'The number is 110000000000000004194304'

如果您的目标是将浮点数转换为整数,则应该这样做.整数具有无限精度,因此不会使用科学计数法显示它们.例如,您可以舍入或舍去小数点后的数字:

>>> round(number)
110000000000000004194304
>>> int(number)
110000000000000004194304

对于高精度小数,可以使用Decimal类型.它允许小数具有任意精度:

>>> from decimal import Decimal
>>> d = 10**23 * Decimal('1.1')
>>> d
Decimal('110000000000000000000000.0')
>>> int(d)
110000000000000000000000

标签:python-3-4,python-3-5,python-3-x,python,formatting
来源: https://codeday.me/bug/20191027/1942817.html