The following gist illustrates my question:
It seems pretty surprising to me that all of these cases all return 1.0, at
least in python (I will now do this in Java, it's just more verbose). Is
this an issue with python? Is this an issue period? Is this unexpected?
At the very least, if you write 1 to ["int", "double"] you'd expect that
it'd get serialized as an int? Or is there a set of rules governing which
primitive type to choose? Is it implementation dependent?
Also, the case where it throws an error, then returns 0 seems completely
wrong. Why would it do that at all? Is it that once it throws an error, it
gets into an inconsistent state and nothing is guaranteed?
Thanks for helping me understand this!