diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.php
index 00fe409..6118ddf 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.php
@@ -137,8 +137,8 @@ public static function generateSampleValue(FieldDefinitionInterface $field_defin
     // point.
     // The maximum number you can get with 3 digits is 10^3 - 1 --> 999.
     // The minimum number you can get with 3 digits is -1 * (10^3 - 1).
-    $max = is_numeric($settings['max']) ?: pow(10, ($precision - $scale)) - 1;
-    $min = is_numeric($settings['min']) ?: -pow(10, ($precision - $scale)) + 1;
+    $max = is_numeric($settings['max']) ? $settings['max'] : pow(10, ($precision - $scale)) - 1;
+    $min = is_numeric($settings['min']) ? $settings['min'] : -pow(10, ($precision - $scale)) + 1;
 
     // Get the number of decimal digits for the $max
     $decimal_digits = self::getDecimalDigits($max);
diff --git a/core/modules/field/tests/src/Kernel/Number/NumberItemTest.php b/core/modules/field/tests/src/Kernel/Number/NumberItemTest.php
index ba47d91..9674cd2 100644
--- a/core/modules/field/tests/src/Kernel/Number/NumberItemTest.php
+++ b/core/modules/field/tests/src/Kernel/Number/NumberItemTest.php
@@ -97,7 +97,15 @@ public function testNumberItem() {
     $entity = EntityTest::create();
     $entity->field_integer->generateSampleItems();
     $entity->field_float->generateSampleItems();
+
+    // Make sure that field settings are respected by the generation.
+    $entity->field_decimal
+      ->getFieldDefinition()
+      ->setSetting('min', 99)
+      ->setSetting('max', 100);
+    // This should through an exception if generated value is out of range.
     $entity->field_decimal->generateSampleItems();
+
     $this->entityValidateAndSave($entity);
   }
 
