#!/usr/bin/env /friends/bin/notjavascript public class StringifyDouble { public static void main(String[] args) { Double finish = 2.0; if (args.length > 0) { try { finish = Double.parseDouble(args[0]); } catch (NumberFormatException e) { System.err.println("Parse " + args[0] + " failed."); System.exit(-1); } } Double d = finish/2; Double f = d; for (int i = 0; i < 54; i++) { String s = String.format("%.17g", d); assert Double.parseDouble(s) == d; System.out.println( String.format("%s == %a",s, d) ); if (d == finish) break; f /= 2; d += f; } } }