Explicitly cast the float argument to double when calling SixDigitsToBuffer in str_cat.h

PiperOrigin-RevId: 998635352
diff --git a/absl/strings/str_cat.h b/absl/strings/str_cat.h
index 3ae1197..11e3bf6 100644
--- a/absl/strings/str_cat.h
+++ b/absl/strings/str_cat.h
@@ -382,7 +382,8 @@
                             &digits_[0])) {}
 
   AlphaNum(float f)  // NOLINT(runtime/explicit)
-      : piece_(digits_, numbers_internal::SixDigitsToBuffer(f, digits_)) {}
+      : piece_(digits_, numbers_internal::SixDigitsToBuffer(
+                            static_cast<double>(f), digits_)) {}
   AlphaNum(double f)  // NOLINT(runtime/explicit)
       : piece_(digits_, numbers_internal::SixDigitsToBuffer(f, digits_)) {}
 
@@ -517,8 +518,8 @@
   std::string result;
   StringResizeAndOverwrite(result, numbers_internal::kSixDigitsToBufferSize,
                            [f](char* start, size_t buf_size) {
-                             size_t size =
-                                 numbers_internal::SixDigitsToBuffer(f, start);
+                             size_t size = numbers_internal::SixDigitsToBuffer(
+                                 static_cast<double>(f), start);
                              ABSL_ASSERT(size < buf_size);
                              return size;
                            });