例如,现有浮点数0.00001623,在python中会默认用科学计数法1.623e-05表示,代表1.623 乘以10的-5次方。
如果只是希望通过print方式显示的时候是普通数字的话,那么格式化下即可
x = 1.623e-05
x = '%.8f' % x
print(x)
x = float(x) - 0.000001
print(x)
print('%.8f' % x)
上面是自己指定了具体小数位数,如果不指定具体小数位数,也可以直接用%f粗略得出一个不是特别精确的小数。如果想要精确又不知道小数位数的情况下,可以用第一种方法并给定一个非常大的小数位数,比如%.50f,代表最多可以显示50位小数
x = 1.623e-05
x = '%f' % x
print(x)
x = 1.623e-05
x = '%.50f' % x
print(x)
def ConvertELogStrToValue(eLogStr):
convert string of natural logarithm base of E to value
return (...
用pandas读取数据时发现工单编号、电话号码等变成科学计数法记录。通过观察当电话号码类型是float时采用科学计数法,而int不会。将电话号码转化成int类型(在Excel里电话号码转化成字符串类型也没有解决问题)
1、首先要将空值转化成数值,这里我转化成了-1(这里我把data2所有字段都填了-1)
data2 = data2.fillna(-1)
2、将电话号码字段转化成int类型
python将科学计数法型数字的字符串转化为数字前言法一法二(刚开始的笨做法)
之前由于需要读取一些数据集里的信息,而这些信息是存为txt文件,读取之后是字符串。数据本来全部都是数字。只不过用科学计数法表示的,使用int,float强转会报错。在网上稍微查了一下,也没找到啥好办法。后来,刚好看到一本书,提到了一个函数。转化起来很简单。
eval('1.23456789e+5')
输出:...
print ("%e" %number)可以将number输出为科学计数法
这里的 number 是要转换的数字或者变量
同理,也可以把科学记数法转化为十进制整数:print ("%d" %number)
同理,二进制,八进制,十六进制也是一样的
当然浮点型的也可以。
print ("%e"%1010)
1.010000e+03