4 python formatting python-3.x python-3.4 python-3.5
计算时是否可以不指定科学/标准表格编号?
例如现在在我的代码中的一行中有:number = 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'
Run Code Online (Sandbox Code Playgroud)
您还可以将其与格式字符串一起使用:
>>> 'The number is {:.0f}'.format(number)
'The number is 110000000000000004194304'
Run Code Online (Sandbox Code Playgroud)
如果您的目标是将浮点数转换为整数,那么您应该这样做。整数具有无限精度,因此它们不使用科学记数法显示。例如,您可以round删除小数点后的数字:
>>> round(number)
110000000000000004194304
>>> int(number)
110000000000000004194304
Run Code Online (Sandbox Code Playgroud)
对于高精度小数,您可以使用Decimal类型。它允许小数具有任意精度:
>>> from decimal import Decimal
>>> d = 10**23 * Decimal('1.1')
>>> d
Decimal('110000000000000000000000.0')
>>> int(d)
110000000000000000000000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8314 次 |
| 最近记录: |