From: Bill Kuker Date: Sun, 22 Jan 2012 02:08:56 +0000 (+0000) Subject: Add speed units. X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=d455f84733184fd248df0abd60f005e048f43a2c;hp=d07530b37d6577d045adc0ea42593ebbf64afef4;p=sw%2Fmotorsim Add speed units. Make length change to a better unit when it gets big. --- diff --git a/src/com/billkuker/rocketry/motorsim/RocketScience.java b/src/com/billkuker/rocketry/motorsim/RocketScience.java index f400ffb..902d55d 100644 --- a/src/com/billkuker/rocketry/motorsim/RocketScience.java +++ b/src/com/billkuker/rocketry/motorsim/RocketScience.java @@ -51,6 +51,7 @@ public class RocketScience { public static enum UnitPreference{ SI(new Unit[]{ + javax.measure.unit.SI.METERS_PER_SECOND, javax.measure.unit.SI.MILLIMETER.pow(2), javax.measure.unit.SI.MILLIMETER, javax.measure.unit.SI.MILLIMETER.divide(javax.measure.unit.SI.SECOND), @@ -60,6 +61,7 @@ public class RocketScience { NEWTON_SECOND }), NONSI(new Unit[]{ + javax.measure.unit.NonSI.MILES_PER_HOUR, javax.measure.unit.NonSI.INCH.pow(2), javax.measure.unit.NonSI.INCH, javax.measure.unit.NonSI.POUND_FORCE, @@ -155,6 +157,7 @@ public class RocketScience { return nf.format(a.doubleValue(a.getUnit())) + " " + a.getUnit(); } + @SuppressWarnings("unchecked") public static String ammountToRoundedString(Amount a) { if (a == null) return "Null"; @@ -163,6 +166,14 @@ public class RocketScience { double d = a.doubleValue(u); DecimalFormat df; + + if (u == SI.MILLIMETER && d > 1000.0) { + u = (Unit) SI.METER; + d = d / 1000.0; + } else if (u == NonSI.INCH && d > 12.0) { + u = (Unit) NonSI.FOOT; + d = d / 12.0; + } if (Math.abs(d) < 10.0) { df = new DecimalFormat("#.##");