字符串在awk中从数字转换为字符串

时间:2017-10-23 09:17:21

标签: bash unix awk

我有以下awk命令,它也提供了上述结果。

echo '1600000.00000000' '1600000.0000' | awk '{ print ($1 != $2) ? "true" : "false" }'

结果是: - false

根据数值,命令给出的结果是正确的。 但我希望命令必须同时将输入('1600000.00000000' '1600000.0000')视为string,并将结果作为true。因为如果你认为两个输入都是string,那么它们就不一样了。精确度就是差异。

2 个答案:

答案 0 :(得分:7)

从GNU Awk用户指南中强制将数字转换为字符串,用空字符串""连接该数字

$ echo '1600000.00000000' '1600000.0000' |
  awk '{ print ($1"" != $2"") ? "true" : "false" }'

答案 1 :(得分:1)

您还可以使用sprintf

echo '1600000.00000000' '1600000.0000' |\
awk '{ print(sprintf("%f",$1) == sprintf("%f",$2)) ? "true": "false"}'
true