I guess the question is a bit facetious
But, I would still like to know what the (flawed) logic is behind this? It's like Splunk wants you to spend hours debugging or have poor data integrity.
| makeresults | eval test="06" | convert num(test) | eval test="".test | eval a=if(test="6","yes","WHY")
Check this please:
| makeresults | eval test=tonumber("06") | eval a=if(test="6","yes, splunk can cast to number","WHY")
Already noted in a comment on the question.
See this version of your query:
| makeresults | eval test="06" | convert num(test) | eval test="".test | eval result1=if(test="6","just 6","NA") , result2=if(test="06", "zero padded 6", "NA"), result3=if(test=6,"number 6", "NA")
ugh
PS for anyone looking for a workaround, not an explanation (which is what I am looking for in an answer), you can just use tonumber or ltrim etc