diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
index 50eb767f99..4738947212 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
@@ -76,10 +76,10 @@ public function getConstraints() {
     $constraint_manager = \Drupal::typedDataManager()->getValidationConstraintManager();
     $constraints = parent::getConstraints();
 
-    $settings = $this->getSettings();
+    $settings = array_merge($this->getSettings(), self::defaultFieldSettings());
     $label = $this->getFieldDefinition()->getLabel();
 
-    if (!empty($settings['min'])) {
+    if ($settings['min'] !== '') {
       $min = $settings['min'];
       $constraints[] = $constraint_manager->create('ComplexData', [
         'value' => [
@@ -91,7 +91,7 @@ public function getConstraints() {
       ]);
     }
 
-    if (!empty($settings['max'])) {
+    if ($settings['max'] !== '') {
       $max = $settings['max'];
       $constraints[] = $constraint_manager->create('ComplexData', [
         'value' => [
