【发布时间】:2023-10-26 06:35:01
【问题描述】:
我使用this question 来帮助我创建科学记数法函数,但是我想要的是4.08E+10 而不是4.08 x 10^10。所以我做了一个 working 函数,如下所示:
def SciNotation(num,sig):
x='%.2e' %num #<-- Instead of 2, input sig here
x= x.split('e')
if (x[1])[0] == "-":
return x[0]+" x 10^"+ x[1].lstrip('0')
else:
return x[0]+" x 10^"+ (x[1])[1:].lstrip('0')
num = float(raw_input("Enter number: "))
sig = raw_input("Enter significant figures: ")
print SciNotation(num,2)
当输入99999 时,此函数将打印输出1.00 x 10^5(2 个有效数字)。但是,我需要使用我的 sig 变量(用户输入的有效数字的数量)。我知道我必须将 sig 变量输入到代码的第 2 行,但我似乎无法开始工作。
到目前为止,我已经尝试过(输入 num=99999,sig=2):
-
x='%.%de' %(num,sig)TypeError:字符串格式化期间并非所有参数都转换
-
x='%d.%de' %(num,sig)x = 99999.2e(输出不正确)
-
x='{0}.{1}e'.format(num,sig)x = 99999.0.2e(输出不正确)
任何帮助将不胜感激!
【问题讨论】:
-
您确定要这样做吗?您在这里重新发明*,大多数语言/应用程序都支持
4.08E+10表示法 -
它只是为了以更易读的方式打印输出。
-
它的可读性如何?它也更难解析,所以如果你稍后再看它,你也将不得不创建更多代码来读取它......
-
如果 Python 支持上标会更好,但显然它不支持
-
@logic 没有任何东西可以启用或阻止 Python 输出上标字符。您是否将它们打印到支持该输出的输出?
标签: python string python-2.7 scientific-notation