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 678ab1f..ba4c3b7 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
@@ -79,7 +79,7 @@ public function getConstraints() {
     $settings = $this->getSettings();
     $label = $this->getFieldDefinition()->getLabel();
 
-    if (!empty($settings['min'])) {
+    if (!empty($settings['min']) || is_numeric($settings['min'])) {
       $min = $settings['min'];
       $constraints[] = $constraint_manager->create('ComplexData', array(
         'value' => array(
@@ -91,7 +91,7 @@ public function getConstraints() {
       ));
     }
 
-    if (!empty($settings['max'])) {
+    if (!empty($settings['max']) || is_numeric($settings['max'])) {
       $max = $settings['max'];
       $constraints[] = $constraint_manager->create('ComplexData', array(
         'value' => array(
diff --git a/core/tests/Drupal/KernelTests/Core/TypedData/TypedDataTest.php b/core/tests/Drupal/KernelTests/Core/TypedData/TypedDataTest.php
index 08f27b3..05378a9 100644
--- a/core/tests/Drupal/KernelTests/Core/TypedData/TypedDataTest.php
+++ b/core/tests/Drupal/KernelTests/Core/TypedData/TypedDataTest.php
@@ -629,6 +629,14 @@ public function testTypedDataValidation() {
 
     $this->assertEqual($violations[0]->getInvalidValue(), 'string');
     $this->assertIdentical($violations[0]->getPropertyPath(), '0.value');
+
+    // Test validating when settings min/max = 0
+    $definition = BaseFieldDefinition::create('integer')
+      ->setSettings(array('min' => 0, 'max' => 0));
+    $violations = $this->typedDataManager->create($definition, 1)->validate();
+    $this->assertEqual($violations->count(), 1);
+    $violations = $this->typedDataManager->create($definition, -1)->validate();
+    $this->assertEqual($violations->count(), 1);
   }
 
 }
