鱼C论坛

 找回密码
 立即注册
查看: 3675|回复: 4

pyhon:浮点数用科学计数法表示,指数部分怎么设置输出三位数?

[复制链接]
发表于 2022-10-5 17:52:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 青出于蓝 于 2022-11-5 15:44 编辑

例如:3.1415926
用%e输出为3.141593e+00
可如果我想得到3.141593e+000,应该怎么办?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-5 18:10:00 | 显示全部楼层


没办法,主要是这样没意义吧

科学计数法指数为整数值,两位指数已经非常大

且 00 和  000 都是一样的,完全不影响代码结果

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-5 19:27:18 | 显示全部楼层
本帖最后由 tommyyu 于 2022-10-5 19:29 编辑

没有就自己写个函数实现
>>> def add_len(n, l):
        n = str(n)
        while len(n) < l:
            n = '0'+n
        return n

>>> def add_len_e(s, l):
        try:
            temp = s.split('e')
            e = 'e'
        except:
            try:
                temp = s.split('E')
                e = 'E'
            except:
                print('出错了!')
        temp[1] =e + temp[1][0] + add_len(temp[1][1:], l)
        return temp[0] + temp[1]


>>> print(add_len_e("%e" % 3.1415926, 3))
3.141593e+000
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-5 19:36:23 | 显示全部楼层
那只是 字符显示形式而已, 数量级10**99 (10的99次方,一般情况下,肯定足够你用了呀)
真要“画蛇添足”,加个0,也不是不可以,比如这样:
s = "{:e}".format(math.pi)
print(s[:-2] + '0' + s[-2:])
3.141593e+000

big = "{:e}".format(1_234_567_890_000)
big
'1.234568e+12'
big[:-2] + '0' + big[-2:]
'1.234568e+012'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-9 11:54:23 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-9 12:23 编辑
pi = 3.141592653589793
s = '%e' % pi
s = s[: -2] + '0' + s[-2 :]
print(s)
        运行实况:
D:\[00.Exerciese.2022]\Python>python x.py
3.141593e+000

D:\[00.Exerciese.2022]\Python>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 09:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表