\r
public static enum UnitPreference{\r
SI(new Unit[]{\r
+ javax.measure.unit.SI.METERS_PER_SECOND,\r
javax.measure.unit.SI.MILLIMETER.pow(2),\r
javax.measure.unit.SI.MILLIMETER,\r
javax.measure.unit.SI.MILLIMETER.divide(javax.measure.unit.SI.SECOND),\r
NEWTON_SECOND\r
}),\r
NONSI(new Unit[]{\r
+ javax.measure.unit.NonSI.MILES_PER_HOUR,\r
javax.measure.unit.NonSI.INCH.pow(2),\r
javax.measure.unit.NonSI.INCH,\r
javax.measure.unit.NonSI.POUND_FORCE,\r
return nf.format(a.doubleValue(a.getUnit())) + " " + a.getUnit();\r
}\r
\r
+ @SuppressWarnings("unchecked")\r
public static <T extends Quantity> String ammountToRoundedString(Amount<T> a) {\r
if (a == null)\r
return "Null";\r
double d = a.doubleValue(u);\r
\r
DecimalFormat df;\r
+ \r
+ if (u == SI.MILLIMETER && d > 1000.0) {\r
+ u = (Unit<T>) SI.METER;\r
+ d = d / 1000.0;\r
+ } else if (u == NonSI.INCH && d > 12.0) {\r
+ u = (Unit<T>) NonSI.FOOT;\r
+ d = d / 12.0;\r
+ }\r
\r
if (Math.abs(d) < 10.0) {\r
df = new DecimalFormat("#.##");\r