public String d2s(final double d) {
		
		if (Double.isNaN(d)) return nan;
		if (Double.isInfinite(d)) return (d < 0) ? ("-"+inf) : ("+"+inf);
		
		final long dr = Math.round(d);
		if (dr == d) return String.valueOf(dr);
		
		final double da = (d < 0) ? -d : d;
		if (da < limit) return "0";
		
		String ds = nan;
		if (da < dflobo || da > 10000000) ds = edf.format(d);
		else ds = ndf.format(d);
		
		return ds;
	}