My search this morning was about how could I compare two decimal numbers in bash, and I came to this answser: How to compare to floating point number in a shell script. This one, however, doesn't include this answer here:$ [[ ((3.56 < 2.90)) ]]; echo $?1$ [[ ((3.56 < 4.90)) ]]; echo $?0Considering that answer has been downvoted, and it looks some kind of unusual bashism, is this arithmetic evaluation trustworthy for accuracy?
Comparison of decimal numbers in bash
bash;arithmetic;floating point
bash does not understand floating point numbers.Quoting bash manual page, section ARITHMETIC EVALUATION:Evaluation is done in fixed-width integers [].So ((3 < 4)) or ((3 < 2)) are actually correct arithmetic expressions. You can type the following:$ echo $((3 < 4)) -- $((3 < 2))output: 1 -- 0But $ echo $((3.3 < 3.6)) will return a syntax error message. In your example, you are actually comparing strings. Hence some example:$ [[ ((3.56 < 04.90)) ]]; echo $?output: 1