#!/usr/bin/env ruby
finish = ARGV[0] ? Float(ARGV[0]) : 2.0
format = ARGV[1] ? ARGV[1] : '%.17g'
d = finish / 2
f = d
54.times do
  s = format % d
  puts "#{s} == #{"%a" % d}"
  raise "'#{s}'.to_f != #{"%a" % d}" if s.to_f != d
  exit 0 if d == finish
  f /= 2
  d += f
end
