在进行计算时是否可以不指定科学/标准表格编号?
例如我现在在我的代码中的一行中有: 数字= 10 ** 23 * 1.1
应该评估为110000000000 ...... 0或者其他什么,而是我分配了1.1e + 23,这非常烦人,因为我试图将IEEE754转换为十进制并使特定的东西打印出来但它不会工作,因为1.1e + 23的科学记数法
我试过环顾四周,但没有简单明了的答案
答案 0 :(得分:4)
默认情况下,您无法更改此设置。如果指数大于浮点精度,则显示浮点数时的默认行为始终是移动到科学计数法。
更改此功能的唯一方法是通过显式以其他方式对其进行格式化。如果您知道显示的号码应具有的精确度,则可以使用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
或切断小数点后的数字:
>>> round(number)
110000000000000004194304
>>> int(number)
110000000000000004194304
对于高精度小数,您可以使用Decimal
类型。它允许小数具有任意精度:
>>> from decimal import Decimal
>>> d = 10**23 * Decimal('1.1')
>>> d
Decimal('110000000000000000000000.0')
>>> int(d)
110000000000000000000000