避免在 awk 中转换为科学计数法

避免在 awk 中转换为科学计数法

我有一个包含数百列的 csv 文件。我想从静态数字中减去特定列的值,然后打印整行。该列的值是长浮点数。当我做减法时,awk 会自动将结果转换为科学格式。我可以使用 printf 来获取标准表示,但我需要获取整行,并且每行的字段太多。

有没有办法避免这种自动转换或至少绕过它?

答案1

man awk

通过替换将数值表达式转换为字符串表达式sprintf(CONVFMT, 表达式), 除非表达式可以在主机上表示为精确整数,然后将其转换为sprintf("%d", 表达式)斯普林特夫() 是一个 AWK 内置函数,它复制了以下功能sprintf(3), 和卷积FMT 是一个内置变量,用于从数字到字符串的内部转换,并初始化为“%.6g”。可以强制显式类型转换,expr ""细绳并且expr+0数字

这样你就可以安排卷积FMT开头或格式字段上的变量。

相关内容