在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