error can shift more than 32 bits.

See issue 47.
diff --git a/src/strtod.cc b/src/strtod.cc
index 3471756..17abcbb 100644
--- a/src/strtod.cc
+++ b/src/strtod.cc
@@ -286,7 +286,7 @@
   const int kDenominator = 1 << kDenominatorLog;
   // Move the remaining decimals into the exponent.
   exponent += remaining_decimals;
-  int error = (remaining_decimals == 0 ? 0 : kDenominator / 2);
+  uint64_t error = (remaining_decimals == 0 ? 0 : kDenominator / 2);
 
   int old_e = input.e();
   input.Normalize();