diff --git a/lib/instrumental/agent.rb b/lib/instrumental/agent.rb
index <HASH>..<HASH> 100644
--- a/lib/instrumental/agent.rb
+++ b/lib/instrumental/agent.rb
@@ -138,7 +138,7 @@ module Instrumental
 
     def valid?(metric, value, time)
       valid_metric = metric =~ /^([\d\w\-_]+\.)*[\d\w\-_]+$/i
-      valid_value  = value.to_s =~ /^-?\d+(\.\d+)?$/
+      valid_value  = value.to_s =~ /^-?\d+(\.\d+)?(e-\d+)?$/
 
       return true if valid_metric && valid_value
 
diff --git a/spec/agent_spec.rb b/spec/agent_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/agent_spec.rb
+++ b/spec/agent_spec.rb
@@ -249,6 +249,7 @@ describe Instrumental::Agent, "enabled" do
     @agent.increment('a',  1)
     @agent.increment('a',  2.2)
     @agent.increment('a',  333.333)
+    @agent.increment('a',  Float::EPSILON)
     wait
     @server.commands.join("\n").should_not include("increment agent.invalid_value")
   end
Supporing float values with exponential notation <I>e-<I>.