The temperature reading may have exceeded the maximum. There are different ways of representing negative numbers, but the most common is to use the most significant bit to represent a negative number. A programmer should have a check for the condition, but sometimes we get lazy and forget to put in a check.
You have to understand binary and hexadecimal to completely understand if, but if you have just one byte storing your data, the numbers you can have range from -127 to +127. If you get to +127 and add 1, instead of +128, you get -127, adding 2 goes from +127 to -126. I know it probably doesn't fully make sense to a non-programmer, but I've seen this bug crop up in other places where things suddenly go negative for no reason.
Obviously 127 wasn't the limit in this case and they are probably using more than one byte, but they are probably storing a larger number that has the temperature to one or two decimal places and they convert it to Centigrade or Fahrenheit to display. The limit to where it overflows and goes negative is probably around 140F.
Another possibility is the measuring hardware doesn't work above some temperature that can be seen in a hot car, but I would think any temperature sensor in a car would have an adequate range in the hardware.