>> print(fact(66),fact(66.)) >> >> Using fp parameter, return correct (?) result >> Using integer parameter, return 0 (zero) result!!!! > > This will happen in C as well. So, why it is surprising? Well, this *may* happen in C. :-)