浮点数的字符串格式

2024-10-01 17:30:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个数字转换成一个字符串,这样它只显示一定数量的有效数字,没有多余的零。以下是一些所需输入/输出的示例,因为我需要5个有效数字:

0.0000123456789 > 1.2346e-5
0.00123456789 > 1.2346e-3
0.123456789 > 1.2346e-1
1.23456789 > 1.2346
1234.56789 > 1234.6
1234567.89 > 1.2346e6

字符串格式(https://docs.python.org/2/library/string.html#format-specification-mini-language)的g选项非常接近,但它的行为并不是我所要寻找的小于1的数字,但也不是比1小很多:

"{:.5g}".format(0.000123456789) # returns '0.00012346', I want '1.2346e-4'

是否可以操纵现有格式化程序之一的行为来执行此操作?你知道吗


Tags: 字符串httpsorgformat示例docs数量string
3条回答
'{:.4g}'.format(float(input)) if x<=1000 or x>=.0001 else '{:.4e}'.format(float(input))

你就快到了,你只需要e,而不是g

"{:.5g}".format(0.000123456789)
# '1.23457e-04'

尽管格式字符串中的数字表示小数点的数量,但是您需要4(加上小数点左边的一个数字):

"{:.4e}".format(0.000123456789)
'1.2346e-04'
if 1 <= x <10000:
    print '{:.5g}'.format(x)

elif 1 > x  or x >= 10000:
    print '{:.4e}'.format(x)

类似于A.Kot的答案,但不是一个线性和输出你想要给你的样品。你知道吗

相关问题 更多 >

    热门问题