簡體   English   中英

在 awk(或使用其他一些 Linux 實用程序)中尋求科學記數法到正常記數法的一致轉換

[英]seeking a consistent transfer of scientific notation to normal notation in awk (or using some other Linux utility)

請您指出我可以如何代替:

awk 'BEGIN{print 8.54585e+09}'
8.54585e+09
awk 'BEGIN{print 8.54585e+08}'
854585000

獲得所需的打印輸出

awk 'BEGIN{print 8.54585e+09}'
8545850000
awk 'BEGIN{print 8.54585e+08}'
854585000

即我需要一種通用且可靠的方法來將科學記數法轉換為正常記數法。 我不受“awk”的約束,任何其他核心 Linux 實用程序也可以。

編輯:上一篇文章AWK 能理解用 E 表示法寫的數字嗎? 不回答我的問題。 我不懷疑“awk”是否可以理解科學記數法(顯然可以)。 我正在尋找一種可靠的方法來將科學記數法轉換為正常記數法。

我必須在 awk 中更改什么,以便 8.54585e+09 和 8.54585e+08 的打印輸出都以正常符號轉換?

謝謝!

OFMT內置變量指示如何在 GNU AWKprint數字,如果您希望將所有數字打印為整數(四舍五入),請嘗試設置為%.0f

awk 'BEGIN{OFMT="%.0f";print 8.54585e+09}'

並寫下它是否符合您的要求。

(我在 gawk 4.2.1 中測試並在設置和不設置 OFMT 的情況下得到8545850000 ,我不知道它如何與您的 AWK 交互)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM