почему число как 0,4 распознается как числовая переменная, а как 0,3 строковая переменная?
input: echo | awk '{ c=0.1+0.3; if (c==0.4) {print "number= ", c} else {print "string= ", c} }'
output: number= 0.4
input: echo | awk '{ c=0.1+0.2; if (c==0.3) {print "number= ", c} else {print "string= ", c} }'
выход: string= 0.3
вход: echo | awk '{ c=0.1+0.3; if (c=="0.4") {print "string= ", c} else {print "number= ", c} }'
выход: string= 0.4
вход: echo | awk '{ c=0.1+0.2; if (c=="0.3") {print "string= ", c} else {print "number= ", c} }'
вывод: string= 0.3
Что здесь происходит? Как работает арифметика c в awk? любая помощь?
Очевидно, использование кавычек в операторе сравнения (как если бы это были строковые переменные) работает в обоих случаях. Однако в моем коде есть l oop, где я передаю значение для сравнения с bash без кавычек, поэтому мне нужно численное сравнение.