diff --git a/Data/Configurator.hs b/Data/Configurator.hs
--- a/Data/Configurator.hs
+++ b/Data/Configurator.hs
@@ -5,7 +5,7 @@
 -- Module:      Data.Configurator
 -- Copyright:   (c) 2011 MailRank, Inc.
 -- License:     BSD3
--- Maintainer:  Bryan O'Sullivan <bos@mailrank.com>
+-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com>
 -- Stability:   experimental
 -- Portability: portable
 --
@@ -72,6 +72,8 @@
 import Data.Monoid (mconcat)
 import Data.Text.Lazy.Builder (fromString, fromText, toLazyText)
 import Data.Text.Lazy.Builder.Int (decimal)
+import Data.Text.Lazy.Builder.RealFloat (realFloat)
+import Data.Ratio (denominator, numerator)
 import Prelude hiding (catch, lookup)
 import System.Environment (getEnv)
 import System.IO (hPutStrLn, stderr)
@@ -291,7 +293,11 @@
   interpret (Interpolate name) =
       case H.lookup name env of
         Just (String x) -> return (fromText x)
-        Just (Number n) -> return (decimal n)
+        Just (Number r)
+            | denominator r == 1 -> return (decimal $ numerator r)
+            | otherwise -> return $ realFloat (fromRational r :: Double)
+                           -- TODO: Use a dedicated Builder for Rationals instead of
+                           -- using realFloat on a Double.
         Just _          -> error "type error"
         _ -> do
           e <- try . getEnv . T.unpack $ name
diff --git a/Data/Configurator/Instances.hs b/Data/Configurator/Instances.hs
--- a/Data/Configurator/Instances.hs
+++ b/Data/Configurator/Instances.hs
@@ -5,9 +5,13 @@
 
 import Control.Applicative
 import Data.Configurator.Types.Internal
+import Data.Complex (Complex)
+import Data.Fixed (Fixed, HasResolution)
 import Data.Int (Int8, Int16, Int32, Int64)
 import Data.Text.Encoding (encodeUtf8)
+import Data.Ratio (Ratio, denominator, numerator)
 import Data.Word (Word, Word8, Word16, Word32, Word64)
+import Foreign.C.Types (CDouble, CFloat)
 import qualified Data.ByteString as B
 import qualified Data.ByteString.Lazy as LB
 import qualified Data.Text as T
@@ -20,42 +24,68 @@
     convert (Bool v) = Just v
     convert _        = Nothing
 
-convertNumber :: (Num a) => Value -> Maybe a
-convertNumber (Number v) = Just (fromIntegral v)
-convertNumber _          = Nothing
+convertNumberToNum :: (Num a) => Value -> Maybe a
+convertNumberToNum (Number r)
+    | denominator r == 1 = Just $ fromInteger $ numerator r
+convertNumberToNum _ = Nothing
 
 instance Configured Int where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Integer where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Int8 where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Int16 where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Int32 where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Int64 where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Word where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Word8 where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Word16 where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Word32 where
-    convert = convertNumber
+    convert = convertNumberToNum
 
 instance Configured Word64 where
-    convert = convertNumber
+    convert = convertNumberToNum
+
+convertNumberToFractional :: (Fractional a) => Value -> Maybe a
+convertNumberToFractional (Number r) = Just $ fromRational r
+convertNumberToFractional _ = Nothing
+
+instance Configured Double where
+    convert = convertNumberToFractional
+
+instance Configured Float where
+    convert = convertNumberToFractional
+
+instance Configured CDouble where
+    convert = convertNumberToFractional
+
+instance Configured CFloat where
+    convert = convertNumberToFractional
+
+instance Integral a => Configured (Ratio a) where
+    convert = convertNumberToFractional
+
+instance RealFloat a => Configured (Complex a) where
+    convert = convertNumberToFractional
+
+instance HasResolution a => Configured (Fixed a) where
+    convert = convertNumberToFractional
 
 instance Configured T.Text where
     convert (String v) = Just v
diff --git a/Data/Configurator/Parser.hs b/Data/Configurator/Parser.hs
--- a/Data/Configurator/Parser.hs
+++ b/Data/Configurator/Parser.hs
@@ -4,7 +4,7 @@
 -- Module:      Data.Configurator.Parser
 -- Copyright:   (c) 2011 MailRank, Inc.
 -- License:     BSD3
--- Maintainer:  Bryan O'Sullivan <bos@mailrank.com>
+-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com>
 -- Stability:   experimental
 -- Portability: portable
 --
@@ -84,7 +84,7 @@
         , string "true" *> pure (Bool True)
         , string "false" *> pure (Bool False)
         , String <$> string_
-        , Number <$> decimal
+        , Number <$> rational
         , List <$> brackets '[' ']'
                    ((value <* skipLWS) `sepBy` (char ',' <* skipLWS))
         ]
diff --git a/Data/Configurator/Types.hs b/Data/Configurator/Types.hs
--- a/Data/Configurator/Types.hs
+++ b/Data/Configurator/Types.hs
@@ -2,7 +2,7 @@
 -- Module:      Data.Configurator.Types
 -- Copyright:   (c) 2011 MailRank, Inc.
 -- License:     BSD3
--- Maintainer:  Bryan O'Sullivan <bos@mailrank.com>
+-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com>
 -- Stability:   experimental
 -- Portability: portable
 --
diff --git a/Data/Configurator/Types/Internal.hs b/Data/Configurator/Types/Internal.hs
--- a/Data/Configurator/Types/Internal.hs
+++ b/Data/Configurator/Types/Internal.hs
@@ -4,7 +4,7 @@
 -- Module:      Data.Configurator.Types.Internal
 -- Copyright:   (c) 2011 MailRank, Inc.
 -- License:     BSD3
--- Maintainer:  Bryan O'Sullivan <bos@mailrank.com>
+-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com>
 -- Stability:   experimental
 -- Portability: portable
 --
@@ -201,7 +201,7 @@
            --
            -- * @\\u@/xxxx/@\\u@/xxxx/ - Unicode character (as two
            --   UTF-16 surrogates)
-           | Number Integer
+           | Number Rational
            -- ^ Integer.
            | List [Value]
            -- ^ Heterogeneous list.  Represented in a configuration
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -29,11 +29,11 @@
 and other improvements.
 
 Please report bugs via the
-[github issue tracker](http://github.com/mailrank/configurator/issues).
+[github issue tracker](http://github.com/bos/configurator/issues).
 
-Master [git repository](http://github.com/mailrank/configurator):
+Master [git repository](http://github.com/bos/configurator):
 
-* `git clone git://github.com/mailrank/configurator.git`
+* `git clone git://github.com/bos/configurator.git`
 
 There's also a [Mercurial mirror](http://bitbucket.org/bos/configurator):
 
@@ -45,4 +45,4 @@
 -------
 
 This library is written and maintained by Bryan O'Sullivan,
-<bos@mailrank.com>.
+<bos@serpentine.com>.
diff --git a/configurator.cabal b/configurator.cabal
--- a/configurator.cabal
+++ b/configurator.cabal
@@ -1,17 +1,17 @@
 name:            configurator
-version:         0.1.0.0
+version:         0.2.0.0
 license:         BSD3
 license-file:    LICENSE
 category:        Configuration, Data
 copyright:       Copyright 2011 MailRank, Inc.
-author:          Bryan O'Sullivan <bos@mailrank.com>
-maintainer:      Bryan O'Sullivan <bos@mailrank.com>
+author:          Bryan O'Sullivan <bos@serpentine.com>
+maintainer:      Bryan O'Sullivan <bos@serpentine.com>
 stability:       experimental
 tested-with:     GHC == 7.0.3
 synopsis:        Configuration management
 cabal-version:   >= 1.8
-homepage:        http://github.com/mailrank/configurator
-bug-reports:     http://github.com/mailrank/configurator/issues
+homepage:        http://github.com/bos/configurator
+bug-reports:     http://github.com/bos/configurator/issues
 build-type:      Simple
 description:
   A configuration management library for programs and daemons.
@@ -55,7 +55,7 @@
     Data.Configurator.Types.Internal
 
   build-depends:
-    attoparsec-text >= 0.8.5.1,
+    attoparsec >= 0.10.0.2,
     base == 4.*,
     bytestring,
     directory,
@@ -72,7 +72,7 @@
 
 source-repository head
   type:     git
-  location: http://github.com/mailrank/configurator
+  location: http://github.com/bos/configurator
 
 source-repository head
   type:     mercurial
