By default these results are expressed as decimals, with the inherent rounding errors. You can switch to using BigDecimals by suffixing with the letter M:
user=> (- 5M 4.9M)
0.1M
user=> (- 5M 4.8M)
0.2M
user=> (- 9M 6.9M)
2.1M
user=> (- 9M 2.9M)
6.1M
To do the same with a variable that's a decimal, use the bigdec form:
user=> (def k 4.9)
#'user/k
user=> (- 5M k)
0.09999999999999964
user=> (- 5M (bigdec k))
0.1M