diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php
index c30a9d2..2095037 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php
@@ -75,10 +75,8 @@ public function viewElements(FieldItemListInterface $items) {
 
       // Account for prefix and suffix.
       if ($this->getSetting('prefix_suffix')) {
-        $prefixes = isset($settings['prefix']) ? array_map(array($this, 'fieldFilterXss'), explode('|', $settings['prefix'])) : array('');
-        $suffixes = isset($settings['suffix']) ? array_map(array($this, 'fieldFilterXss'), explode('|', $settings['suffix'])) : array('');
-        $prefix = (count($prefixes) > 1) ? $this->formatPlural($item->value, $prefixes[0], $prefixes[1]) : $prefixes[0];
-        $suffix = (count($suffixes) > 1) ? $this->formatPlural($item->value, $suffixes[0], $suffixes[1]) : $suffixes[0];
+        $prefix = isset($settings['prefix']) ? $this->fieldFilterXss($settings['prefix']) : '';
+        $suffix = isset($settings['suffix']) ? $this->fieldFilterXss($settings['suffix']) : '';
         $output = $prefix . $output . $suffix;
       }
       // Output the raw value in a content attribute if the text of the HTML
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 9f9bd0b..377f88f 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
@@ -51,14 +51,14 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
       '#title' => t('Prefix'),
       '#default_value' => $settings['prefix'],
       '#size' => 60,
-      '#description' => t("Define a string that should be prefixed to the value, like '$ ' or '&euro; '. Leave blank for none. Separate singular and plural values with a pipe ('pound|pounds')."),
+      '#description' => t("Define a string that should be prefixed to the value, like '$ ' or '&euro; '. Leave blank for none."),
     );
     $element['suffix'] = array(
       '#type' => 'textfield',
       '#title' => t('Suffix'),
       '#default_value' => $settings['suffix'],
       '#size' => 60,
-      '#description' => t("Define a string that should be suffixed to the value, like ' m', ' kb/s'. Leave blank for none. Separate singular and plural values with a pipe ('pound|pounds')."),
+      '#description' => t("Define a string that should be suffixed to the value, like ' m', ' kb/s'. Leave blank for none."),
     );
 
     return $element;
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php
index 50f8006..86db983 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php
@@ -100,12 +100,10 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
 
     // Add prefix and suffix.
     if ($field_settings['prefix']) {
-      $prefixes = explode('|', $field_settings['prefix']);
-      $element['#field_prefix'] = $this->fieldFilterXss(array_pop($prefixes));
+      $element['#field_prefix'] = $this->fieldFilterXss($field_settings['prefix']);
     }
     if ($field_settings['suffix']) {
-      $suffixes = explode('|', $field_settings['suffix']);
-      $element['#field_suffix'] = $this->fieldFilterXss(array_pop($suffixes));
+      $element['#field_suffix'] = $this->fieldFilterXss($field_settings['suffix']);
     }
 
     return array('value' => $element);
diff --git a/core/modules/field/field.install b/core/modules/field/field.install
new file mode 100644
index 0000000..0bb6d4a
--- /dev/null
+++ b/core/modules/field/field.install
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the field module.
+ */
+
+/**
+ * @addtogroup updates-8.0.0-beta
+ * @{
+ */
+
+/**
+ * Update prefix and suffix field configuration settings to not include a pipe.
+ *
+ * Formerly, a pipe was accepted as input for prefix and suffix field
+ * configuration settings in order to handle singular and plural forms. However,
+ * this approach was not correct, so this wrong behaviour was removed.
+ */
+function field_update_8001(&$sandbox) {
+
+  $adjusted_prefix = [];
+  $adjusted_suffix = [];
+
+  $config_factory = \Drupal::configFactory();
+
+  $list = $config_factory->listAll('field.field.');
+  foreach ($list as $field_config_name) {
+    $field = $config_factory->getEditable($field_config_name);
+    if($field_settings = $field->get('settings')) {
+      if(isset($field_settings['prefix']) && strstr($field_settings['prefix'], '|')) {
+        $prefixes = explode('|', $field_settings['prefix']);
+        $field_settings['prefix'] = array_pop($prefixes);
+        $field->set('settings', $field_settings);
+        $field->save();
+        $adjusted_prefix[] = $field->getName();
+      }
+      if(isset($field_settings['suffix']) && strstr($field_settings['suffix'], '|')) {
+        $suffixes = explode('|', $field_settings['suffix']);
+        $field_settings['suffix'] = array_pop($suffixes);
+        $field->set('settings', $field_settings);
+        $field->save();
+        $adjusted_suffix[] = $field->getName();
+      }
+    }
+  }
+
+  // Give the user the name of the prefix/suffix fields that where adjusted.
+  if (!empty($adjusted_prefix) || !empty($adjusted_suffix)) {
+    $args = [
+      '@prefixes' => implode(', ', $adjusted_prefix) ?: 'none',
+      '@suffixes' => implode(', ', $adjusted_suffix) ?: 'none',
+    ];
+    $msg = 'Some of your prefix/suffix fields configured pipe symbols to format singular/plural form. This is no longer supported, so the fields where adjusted. See the change record https://www.drupal.org/node/2552871 for more information.';
+    $msg .= '<br\>Prefix fields adjusted: @prefixes';
+    $msg .= '<br\>Suffix fields adjusted: @suffixes';
+    $message = \Drupal::translation()->translate($msg, $args);
+    return $message;
+  }
+
+}
+
+/**
+ * @} End of "addtogroup updates-8.0.0-beta".
+ */
diff --git a/core/modules/field/src/Tests/Update/FieldConfigUpdateTest.php b/core/modules/field/src/Tests/Update/FieldConfigUpdateTest.php
new file mode 100644
index 0000000..79a3ff9
--- /dev/null
+++ b/core/modules/field/src/Tests/Update/FieldConfigUpdateTest.php
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\field\Tests\Update\FieldUpdateTest.
+ */
+
+namespace Drupal\field\Tests\Update;
+
+use Drupal\system\Tests\Update\UpdatePathTestBase;
+
+/**
+ * Tests the upgrade path for configuration of fields.
+ *
+ * @see https://www.drupal.org/node/2545730
+ *
+ * @group Update
+ */
+class FieldConfigUpdateTest extends UpdatePathTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    $this->databaseDumpFiles = [
+      __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz',
+    ];
+
+    parent::setUp();
+  }
+
+  /**
+   * Tests that field configurations are updated properly.
+   */
+  public function testUpdateHookN() {
+    $this->runUpdates();
+
+    // @TODO implement
+  }
+
+}
