py: Fix issue in mpz_set_from_float() when mp_int_t is larger than float
diff --git a/py/mpz.c b/py/mpz.c
index 47cbf5d..c0a3d4b 100644
--- a/py/mpz.c
+++ b/py/mpz.c
@@ -747,10 +747,16 @@
                 z->dig[dig_ind++] = (frc << shft) & DIG_MASK;
                 frc >>= DIG_SIZE - shft;
             }
+#if DIG_SIZE < (MP_FLOAT_FRAC_BITS + 1)
             while (dig_ind != dig_cnt) {
                 z->dig[dig_ind++] = frc & DIG_MASK;
                 frc >>= DIG_SIZE;
             }
+#else
+            if (dig_ind != dig_cnt) {
+                z->dig[dig_ind] = frc;
+            }
+#endif
         }
     }
 }