AFAIK doubles do precisely express 0.5, as it is 1 * 2^{-1}. This indicates a bug in lround()
on this platform and as a result a bug in SWI-Prolog on this platform. I already reported that in Another floating point casualty: round/integer arithmetic functions - #9 by jan.
Ideally MinGW should fix this. It was reported long ago together with a patch Alternatively we leave the test failing and possibly add a bug note to the round function. Finally we can provide our own correct lround for systems where it is broken.