My first thought would be that there's a problem in the library you are using with a mix-up between signed and unsigned variables.
I've no experience of the MKR boards myself but I wonder if it may possibly be an issue with the serial printing routine, as I seem to recall reading some time back that serial print didn't like floats much.
You could test this by using sprintf to print the value to a null terminated c string and then use serial print to print out the resulting text.
EDIT: There may be an issue with sprintf too.
This discussion might help - see the dtostrf() function: