diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.2.7
+
+* Add `mantissa` function for digits.
+
 0.2.6
 
 * Use `Integral` not `Int`.
diff --git a/digit.cabal b/digit.cabal
--- a/digit.cabal
+++ b/digit.cabal
@@ -1,5 +1,5 @@
 name:               digit
-version:            0.2.6
+version:            0.2.7
 license:            BSD3
 license-File:       etc/LICENCE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
diff --git a/src/Data/Digit.hs b/src/Data/Digit.hs
--- a/src/Data/Digit.hs
+++ b/src/Data/Digit.hs
@@ -60,6 +60,7 @@
 , digitsS
 , (.+.)
 , (.*.)
+, mantissa
 ) where
 
 import Control.Applicative(many, some)
@@ -73,7 +74,7 @@
 import Data.Function(const)
 import Data.Functor((<$), (<$>))
 import Data.Int(Int)
-import Data.List(unfoldr, reverse, notElem, (++))
+import Data.List(unfoldr, reverse, notElem, zip, (++))
 import Data.List.NonEmpty(NonEmpty, some1)
 import Data.Maybe(Maybe(Nothing, Just), maybe, fromMaybe)
 import Data.Monoid(Monoid(mempty, mappend))
@@ -84,7 +85,7 @@
 import Data.Typeable (Typeable)
 import Language.Haskell.TH(ExpQ, PatQ, varE, varP, mkName)
 import Language.Haskell.TH.Quote(QuasiQuoter(QuasiQuoter), quotePat, quoteExp, quoteDec, dataToExpQ, dataToPatQ, quoteType)
-import Prelude(Show(..), Read(..), Enum(..), Bounded, Num(..), Integral, Integer, error, divMod, mod)
+import Prelude(Show(..), Read(..), Enum(..), Floating((**)), Bounded, Num(..), Integral, Integer, fromIntegral, error, divMod, mod)
 import Text.Parser.Char(CharParsing, char, satisfy)
 import Text.Parser.Combinators(skipMany, skipSome, (<?>))
 
@@ -815,3 +816,12 @@
   -> Digits
 Digits d .*. Digits e =
   Digits (fromMaybe [] ((digitlist # d * (digitlist # e :: Integer)) ^? digitlist))
+
+mantissa ::
+  Floating a =>
+  Digits
+  -> a
+mantissa d =
+  let acc a (e, x) = 
+        a + fromIntegral (digit # x :: Int) * 10 ** fromIntegral (negate e :: Int)
+  in foldl' acc 0 (zip [1..] (digitsI # d))
