gpt4 book ai didi

linux - 如何将linux或perl中特定列中的科学记数法更改为数字

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:22 25 4
gpt4 key购买 nike

我有一个文件如下:

1   13.00000    12.9999999183917    8.160832898340686E-008  21148294
2 16.00000 15.9999995223584 -4.760327190211910E-007 21148294
3 9.000000 8.99999979262170 2.073783047507050E-007 21148295

我想要这样的输出:

1   13.00000    12.9999999183917    0.0000000816083289340686    21148294
2 16.00000 15.9999995223584 -0.00000004760327190211910 21148294
3 9.000000 8.99999979262170 0.00000002073783047507050 21148295

有人可以帮助我吗?非常感谢!!

最佳答案

这个问题的关键是使用printf来控制精度。

您应该给出预期的精度,例如第一行和第二行中的数字具有不同的精度。您期望哪一个?甚至更高?这是使用 awk 的示例。自己做一些测试并选择正确的。它至少应该为您指明道路,让您开始:

kent$  cat f
1 13.00000 12.9999999183917 8.160832898340686E-008 21148294
2 16.00000 15.9999995223584 -4.760327190211910E-007 21148294
3 9.000000 8.99999979262170 2.073783047507050E-007 21148295

kent$ awk '{$4=sprintf("%.23f",$4)}7' f
1 13.00000 12.9999999183917 0.00000008160832898340686 21148294
2 16.00000 15.9999995223584 -0.00000047603271902119099 21148294
3 9.000000 8.99999979262170 0.00000020737830475070501 21148295

kent$ awk '{$4=sprintf("%.24f",$4)}7' f
1 13.00000 12.9999999183917 0.000000081608328983406864 21148294
2 16.00000 15.9999995223584 -0.000000476032719021190989 21148294
3 9.000000 8.99999979262170 0.000000207378304750705009 21148295

您可以更改%.xxf模式

关于linux - 如何将linux或perl中特定列中的科学记数法更改为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24954877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com