I can understand floating point errors, but this one seems too small for that. Especially given this: irb(main):023:0> v=100.0*9.95 => 995 irb(main):024:0> v.to_i => 994 irb(main):016:0> (100.0*9.95).to_i => 994 irb(main):017:0> (100*9.95).to_i => 994 irb(main):018:0> (100*9.95+0.0000000000001).to_i => 995 irb(main):019:0> RUBY_VERSION => "1.8.1" irb(main):020:0> RUBY_PLATFORM => "sparc-solaris2.8" irb(main):020:0> (100.0*9.95).to_i => 994 irb(main):021:0> (100*9.95).to_i => 994 irb(main):022:0> (100*9.95+0.0000000000001).to_i => 995 irb(main):023:0> RUBY_VERSION => "1.6.8" irb(main):024:0> RUBY_PLATFORM => "powerpc-darwin7.0" Dan