Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将指数转换为十进制_Python_Unix_Awk_Exponent - Fatal编程技术网

在python中将指数转换为十进制

在python中将指数转换为十进制,python,unix,awk,exponent,Python,Unix,Awk,Exponent,我在python中有一个数组,它包含一组值,其中一些是 2.32313e+07 2.1155e+07 1.923e+07 11856 112.32 如何将指数格式转换为十进制格式 附加:在使用awk的UNIX中打印时,有没有一种方法可以将指数直接转换为十进制?我想您有一个列表而不是数组,但在这里它没有多大区别;在2.6及更早版本的Python中,类似于: >>> L = [2.32313e+07, 2.1155e+07, 1.923e+07, 11856, 112.32] &g

我在python中有一个数组,它包含一组值,其中一些是

2.32313e+07

2.1155e+07

1.923e+07

11856

112.32

如何将指数格式转换为十进制格式


附加:在使用awk的UNIX中打印时,有没有一种方法可以将指数直接转换为十进制?

我想您有一个列表而不是数组,但在这里它没有多大区别;在2.6及更早版本的Python中,类似于:

>>> L = [2.32313e+07, 2.1155e+07, 1.923e+07, 11856, 112.32]
>>> for x in L: print '%f' % x
... 
23231300.000000
21155000.000000
19230000.000000
11856.000000
112.320000
在2.6或更高版本中,使用
.format
方法。我想你知道数字本身,作为数字,不是任何“格式”——是你通过格式化数字获得的字符串,例如输出,是某种格式。顺便说一句,
%f
上的变体可以让您控制小数位数、宽度、对齐方式等——如果没有进一步的规范,很难准确地建议您想要什么

在awk中,您可以使用。

您可以使用locale.format()对输出的数字进行格式化。这还有一个额外的好处,就是与数字表示中可能预期的任何特定于语言环境的约定保持一致。如果希望在输出的特定位置完全控制,最好使用打印“格式”%vars

例如:

>>> import locale 
>>> locale.setlocale(locale.LC_ALL, "")
'C/UTF-8/C/C/C/C'
>>> locale.format("%f", 2.32313e+07, 1)
'23231300.000000'

在回答问题的最后一部分时,
awk
可以使用相同的
printf
格式:

awk '{printf "%f\n",$1}' exponential_file
其中,文件包含:

2.32313e+07
2.1155e+07
1.923e+07
11856
112.32
您可以将其转换为变量,以供以后使用。下面是一个简单的例子:

awk '{n = sprintf("%f\n",$1); print n * 2}' exponential_file

是否要转换为表示具有特定精度的浮点的字符串?是。精度可以是任何数字任何数字意味着什么?你知道这个号码吗?这个号码取决于我从中提取信息的文件类型。我会先知道这个数字,然后再看这个最近的问题,了解一个类似的问题和一个有趣的解决方案: