diff --git a/core/fxcrt/fx_number.cpp b/core/fxcrt/fx_number.cpp
index 4e58490..d577531 100644
--- a/core/fxcrt/fx_number.cpp
+++ b/core/fxcrt/fx_number.cpp
@@ -93,7 +93,7 @@
     return m_SignedValue;
   }
 
-  return pdfium::base::checked_cast<int32_t>(m_FloatValue);
+  return pdfium::base::saturated_cast<int32_t>(m_FloatValue);
 }
 
 float FX_Number::GetFloat() const {
diff --git a/core/fxcrt/fx_number_unittest.cpp b/core/fxcrt/fx_number_unittest.cpp
index ebfdfe7..9a1d2eb 100644
--- a/core/fxcrt/fx_number_unittest.cpp
+++ b/core/fxcrt/fx_number_unittest.cpp
@@ -43,15 +43,18 @@
   EXPECT_TRUE(number2.IsSigned());
   EXPECT_EQ(-100, number2.GetSigned());
   EXPECT_FLOAT_EQ(-100.001f, number2.GetFloat());
-}
 
-TEST(fxnumberDeathTest, FromFloatOutOfIntegerRange) {
-  FX_Number number(1e17f);
-  EXPECT_FALSE(number.IsInteger());
-  EXPECT_TRUE(number.IsSigned());
-  ASSERT_DEATH({ number.GetSigned(); },
-               // The CHECK macro doesn't produce useful error messages
-               "");
+  // Show positive saturation.
+  FX_Number number3(1e17f);
+  EXPECT_FALSE(number3.IsInteger());
+  EXPECT_TRUE(number3.IsSigned());
+  EXPECT_EQ(std::numeric_limits<int32_t>::max(), number3.GetSigned());
+
+  // Show negative saturation.
+  FX_Number number4(-1e17f);
+  EXPECT_FALSE(number4.IsInteger());
+  EXPECT_TRUE(number4.IsSigned());
+  EXPECT_EQ(std::numeric_limits<int32_t>::min(), number4.GetSigned());
 }
 
 TEST(fxnumber, FromStringUnsigned) {
