当前位置: 首页 > 面试题库 >

指数位数

张鹏云
2023-03-14
问题内容

是否可以设置用于打印浮点数指数的位数?我想将其设置为3。

目前,

f = 0.0000870927939438012
>>> "%.14e"%f
'8.70927939438012e-05'
>>> "%0.14e"%f
'8.709279e-005'

我要打印的是: '8.70927939438012e-005'


问题答案:

没有办法控制,最好的办法就是为此编写一个函数,例如

def eformat(f, prec, exp_digits):
    s = "%.*e"%(prec, f)
    mantissa, exp = s.split('e')
    # add 1 to digits as 1 is taken by sign +/-
    return "%se%+0*d"%(mantissa, exp_digits+1, int(exp))

print eformat(0.0000870927939438012, 14, 3)
print eformat(1.0000870927939438012e5, 14, 3)
print eformat(1.1e123, 4, 4)
print eformat(1.1e-123, 4, 4)

输出:

8.70927939438012e-005
1.00008709279394e+005
1.1000e+0123
1.1000e-0123


 类似资料:
  • 本文向大家介绍直观理解C语言中指向一位数组与二维数组的指针,包括了直观理解C语言中指向一位数组与二维数组的指针的使用技巧和注意事项,需要的朋友参考一下 一维数组和指针: 对于一位数组和指针是很好理解的: 一维数组名: 对于这样的一维数组:int a[5];  a作为数组名就是我们数组的首地址, a是一个地址常量 . 首先说说常量和变量的关系, 对于变量来说, 用箱子去比喻再好不过了, 声明一个变量

  • 指数信息 接口名称 index_info 接口描述 指数信息接口 请求参数 参数名 说明 举例 index_id 指数id index0070c0eb-93ba-2da9-6633-fa70cb90e959 返回参数 参数名 类型 说明 name string 指数名称 all_brokers int 是否包含所有席位,0:否,1:是 created_time datetime 创建时间 all_

  • 一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。我们可以把函数的这个首地址(或称入口地址)赋予一个 指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。这种指针就是 函数指针。 函数指针的定义形式为: returnType (*pointerName)(param list); returnType

  • 主要内容:关于数组指针的谜题数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以 为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数组名和数组长度,数组名可以认为是一个 指针,它指向数组的第 0 个元素。 在C语言中,我们将第 0 个元素的地址称为数组的首地址。以上面的数组为例,下图是 arr 的指向:

  • 2、位检测指令(Bit Test Instruction) 指令的格式:BT/BTC/BTR/BTS Reg/Mem, Reg/Imm;80386+ 受影响的标志位:CF 位检测指令是把第一个操作数中某一位的值传送给标志位CF,具体的哪一位由指令的第二操作数来确定。 根据指令中对具体位的处理不同,又分一下几种指令: BT:把指定的位传送给CF; BTC:把指定的位传送给CF后,还使该位变反; BT

  • 5.2.6 位操作指令 1、位扫描指令(Bit ScanInstruction) 指令的格式:BSF/BSR Reg, Reg/Mem ;80386+ 受影响的标志位:ZF 位扫描指令是在第二个操作数中找第一个“1”的位置。如果找到,则该“1”的位置保存在第一操作数中,并置标志位ZF为1,否则,置标志位ZF为0。 根据位扫描的方向不同,指令分二种:正向扫描指令和逆向扫描指令。 、正向扫描指令BSF