In the report, I would bet a computer program is rounding a small negative number like -.2 to M00, and a small positive number like +.2 to 00. The "C" "printf" function is easily formatted to produce -0 and 0, and it annoys accountants, so it is definitely the right way to do it.
Well that may be the answer in computer geek language (I've no idea whether it is
) but the simple answer is that an ICAO METAR rounds temperature to the nearest whole degree. "M00" signifies a temperature somewhere between -0.5C and (just below) 0, "00" signifies a temperature somewhere between 0 and (just below) +0.5C. Simple.