Python why 100**0.5 == 4+6 is true?

python

Solution

Quoting from http://docs.python.org/2/library/stdtypes.html#numeric-types-int-float-long-complex

Python fully supports mixed arithmetic: when a binary arithmetic operator has operands of different numeric types, the operand with the “narrower” type is widened to that of the other, where plain integer is narrower than long integer is narrower than floating point is narrower than complex.

So, `10` is widened to `10.0`. Thats why `10 == 10.0`

Problem

``` >>> 100**0.5 != 4+6 False >>> 100**0.5 == 4+6 True >>> 4+6 10 >>> 100**0.5 10.0 >>> 10.0==10 True ``` Who can tell me why `10.0==10` is `True`? I think 10.0 is a `float` and 10 is `int`,I know in java they are not equal.

Original source