It’s just printing them in a compact form, so that more columns can fit into the screen. (For example rand(9,9) fits into a window 100 characters wide.) As you’ve noticed, it doesn’t do this for vectors, since there is nothing to be gained.

That’s true, but the .0 is just wrong. Displaying -498796 would be correct (rounding to the nearest integer), but displaying -498796.0 is wrong–it should be -498796.3.

I’ve verified that this exists in Julia 1.4.2 and in the 1.5 beta.

Yeah, exactly. It’s that when we round to 0 digits, we still have a Float64, and an integral Float64 is always printed with .0. That implies (to my human brain) that .0 is a significant digit of the value, but that’s not the case.

The solution might be to never round to exactly 0 digits when printing in compact mode.