So... just skimming through here, a couple of things...
prevTemp#=lastTemp#
here.tnow = (lastTemp#+prevTemp#)/2.0
Unless I'm misreading something, this is just going to set here.tnow to prevTemp#, sense you set lastTemp to prevTemp before taking the average.
Quote: "Your screenshot shows temperature to 100th of a degree, so it means the max error in your readings will be 1/100th degree, and only when the actual temp is 0."
That doesn't mean that his input is actually that accurate - its just being stored that accurately. It could be coming from a device thats only accurate within a 10th of a degree, or even just accurate to the nearest degree.Plus, 0C is definitely a reasonable value to expect when it comes to temperatures.
Also, I don't know how your data source works exactly, so this may not be applicable, but you mite want to also keep track of how much time has elapsed sense the last time you received input. That way, if you're cut off from your source for an hour, and the temperature changes drastically, you can take into account how much time has passed before deciding that the temperature measurement is erroneous.
“It is not clear that intelligence has any long-term survival value” -Stephen Hawking