Corrections for a/an in code comments and documentation
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 82f9960..82cb28d 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -407,7 +407,7 @@
  * may lose info from fractional bits.  Converting the integer to a double
  * also has two failure modes:  (1) a long int may trigger overflow (too
  * large to fit in the dynamic range of a C double); (2) even a C long may have
- * more bits than fit in a C double (e.g., on a a 64-bit box long may have
+ * more bits than fit in a C double (e.g., on a 64-bit box long may have
  * 63 bits of precision, but a C double probably has only 53), and then
  * we can falsely claim equality when low-order integer bits are lost by
  * coercion to double.  So this part is painful too.
diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h
index b75755e..1ac6277 100644
--- a/Objects/stringlib/formatter.h
+++ b/Objects/stringlib/formatter.h
@@ -995,7 +995,7 @@
     if (precision < 0)
         precision = default_precision;
 
-    /* Cast "type", because if we're in unicode we need to pass a
+    /* Cast "type", because if we're in unicode we need to pass an
        8-bit char. This is safe, because we've restricted what "type"
        can be. */
     buf = PyOS_double_to_string(val, (char)type, precision, flags,
@@ -1175,7 +1175,7 @@
     if (precision < 0)
         precision = default_precision;
 
-    /* Cast "type", because if we're in unicode we need to pass a
+    /* Cast "type", because if we're in unicode we need to pass an
        8-bit char. This is safe, because we've restricted what "type"
        can be. */
     re_buf = PyOS_double_to_string(re, (char)type, precision, flags,