diff --git a/core/modules/number/lib/Drupal/number/Plugin/field/formatter/DefaultNumberFormatter.php b/core/modules/number/lib/Drupal/number/Plugin/field/formatter/DefaultNumberFormatter.php
index 8188dc1..4fc51c4 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/field/formatter/DefaultNumberFormatter.php
+++ b/core/modules/number/lib/Drupal/number/Plugin/field/formatter/DefaultNumberFormatter.php
@@ -66,14 +66,15 @@ public function settingsSummary() {
    */
   public function viewElements(EntityInterface $entity, $langcode, array $items) {
     $elements = array();
+    $field_settings = $this->getFieldSettings();
 
     foreach ($items as $delta => $item) {
       $output = $this->numberFormat($item['value']);
 
       // Account for prefix and suffix.
       if ($this->getSetting('prefix_suffix')) {
-        $prefixes = isset($instance['settings']['prefix']) ? array_map('field_filter_xss', explode('|', $instance['settings']['prefix'])) : array('');
-        $suffixes = isset($instance['settings']['suffix']) ? array_map('field_filter_xss', explode('|', $instance['settings']['suffix'])) : array('');
+        $prefixes = isset($field_settings['prefix']) ? array_map('field_filter_xss', explode('|', $field_settings['prefix'])) : array('');
+        $suffixes = isset($field_settings['suffix']) ? array_map('field_filter_xss', explode('|', $field_settings['suffix'])) : array('');
         $prefix = (count($prefixes) > 1) ? format_plural($item['value'], $prefixes[0], $prefixes[1]) : $prefixes[0];
         $suffix = (count($suffixes) > 1) ? format_plural($item['value'], $suffixes[0], $suffixes[1]) : $suffixes[0];
         $output = $prefix . $output . $suffix;
diff --git a/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php b/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php
index 8bea406..ad947e4 100644
--- a/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php
+++ b/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php
@@ -54,7 +54,7 @@ public static function getInfo() {
   function setUp() {
     parent::setUp();
 
-    $this->web_user = $this->drupalCreateUser(array('view test entity', 'administer entity_test content', 'administer content types', 'administer node fields','administer node display'));
+    $this->web_user = $this->drupalCreateUser(array('view test entity', 'administer entity_test content', 'administer content types', 'administer node fields', 'administer node display', 'bypass node access'));
     $this->drupalLogin($this->web_user);
   }
 
@@ -170,16 +170,41 @@ function testNumberIntegerField() {
     );
     $this->drupalPost(NULL, $edit, t('Save'));
 
-    // Set the formatter to "number_integer" and to "unformatted", and just
+    // Add prefix and suffix for the newly-created field.
+    $prefix = $this->randomName();
+    $suffix = $this->randomName();
+    $edit = array(
+      'instance[settings][prefix]' => $prefix,
+      'instance[settings][suffix]' => $suffix,
+    );
+    $this->drupalPost("admin/structure/types/manage/$type/fields/node.$type.field_$field_name", $edit, t('Save settings'));
+
+    // Set the formatter to "unformatted" and to "number_integer", and just
     // check that the settings summary does not generate warnings.
     $this->drupalGet("admin/structure/types/manage/$type/display");
     $edit = array(
-      "fields[field_$field_name][type]" => 'number_integer',
+      "fields[field_$field_name][type]" => 'number_unformatted',
     );
     $this->drupalPost(NULL, $edit, t('Save'));
     $edit = array(
-      "fields[field_$field_name][type]" => 'number_unformatted',
+      "fields[field_$field_name][type]" => 'number_integer',
     );
     $this->drupalPost(NULL, $edit, t('Save'));
+
+    // Configure the formatter to display the prefix and suffix.
+    $this->drupalPostAJAX(NULL, array(), "field_${field_name}_settings_edit");
+    $edit = array("fields[field_${field_name}][settings_edit_form][settings][prefix_suffix]" => TRUE);
+    $this->drupalPostAJAX(NULL, $edit, "field_${field_name}_plugin_settings_update");
+    $this->drupalPost(NULL, array(), t('Save'));
+
+    // Create new content and check that prefix and suffix are shown.
+    $rand_number = rand();
+    $edit = array(
+      'title' => $this->randomName(),
+      'field_' .$field_name . '[und][0][value]' => $rand_number,
+    );
+    $this->drupalPost("node/add/$type", $edit, t('Save'));
+
+    $this->assertRaw("$prefix$rand_number$suffix", 'Prefix and suffix added');
   }
 }
