diff --git a/formatting.cabal b/formatting.cabal
--- a/formatting.cabal
+++ b/formatting.cabal
@@ -1,5 +1,5 @@
 name:                formatting
-version:             4.1
+version:             5.0
 synopsis:            Combinator-based type-safe formatting (like printf() or FORMAT)
 description:         Combinator-based type-safe formatting (like printf() or FORMAT), modelled from the HoleyMonoids package.
 license:             BSD3
@@ -21,9 +21,10 @@
                      Formatting.Internal
   build-depends:     base >= 4 && < 5,
                      text-format,
-                     text,
+                     text >= 0.11.0.8,
                      time,
-                     old-locale
+                     old-locale,
+                     scientific >= 0.3.0.0
   hs-source-dirs:    src
   ghc-options:       -O2
 
diff --git a/src/Formatting/Formatters.hs b/src/Formatting/Formatters.hs
--- a/src/Formatting/Formatters.hs
+++ b/src/Formatting/Formatters.hs
@@ -27,6 +27,8 @@
   expt,
   fixed,
   prec,
+  sci,
+  scifmt,
   shortest,
   commas,
   ords,
@@ -45,13 +47,15 @@
 import           Data.Monoid
 import qualified Data.Text as S
 import qualified Data.Text as T
-import           Data.Text.Buildable    (Buildable)
-import qualified Data.Text.Buildable    as B (build)
-import qualified Data.Text.Format       as T
+import           Data.Text.Buildable (Buildable)
+import qualified Data.Text.Buildable as B (build)
+import qualified Data.Text.Format as T
 import           Data.Text.Lazy (Text)
 import qualified Data.Text.Lazy as LT
 import           Data.Text.Lazy.Builder (Builder)
 import qualified Data.Text.Lazy.Builder as T
+import           Data.Text.Lazy.Builder.Scientific
+import           Data.Scientific
 
 -- | Output a lazy text.
 text :: Format Text
@@ -110,6 +114,14 @@
 -- digits that correctly represent it.
 shortest :: Real a => Format a
 shortest = later T.shortest
+
+-- | Render a scientific number.
+sci :: Format Scientific
+sci = later scientificBuilder
+
+-- | Render a scientific number with options.
+scifmt :: FPFormat -> Maybe Int -> Format Scientific
+scifmt f i = later (formatScientificBuilder f i)
 
 -- | Pad the left hand side of a string until it reaches k characters
 -- wide, if necessary filling with character c.
