altoslib: Expose locale and non-locale floating point parsing functions
[fw/altos] / altoslib / AltosUnits.java
index f6e34e773ed36e153d46dd8e6d8be2a0972d4624..e266b2437b606d7e1c45bf8f932246bcec359b39 100644 (file)
@@ -17,6 +17,8 @@
 
 package org.altusmetrum.altoslib_6;
 
+import java.text.*;
+
 public abstract class AltosUnits {
 
        public abstract double value(double v, boolean imperial_units);
@@ -29,13 +31,22 @@ public abstract class AltosUnits {
 
        public abstract int show_fraction(int width, boolean imperial_units);
 
-       public double parse(String s, boolean imperial_units) throws NumberFormatException {
-               double v = Double.parseDouble(s);
+       public double parse_locale(String s, boolean imperial_units) throws ParseException {
+               double v = AltosParse.parse_double_locale(s);
+               return inverse(v, imperial_units);
+       }
+
+       public double parse_net(String s, boolean imperial_units) throws ParseException {
+               double v = AltosParse.parse_double_net(s);
                return inverse(v, imperial_units);
        }
 
-       public double parse(String s) throws NumberFormatException {
-               return parse(s, AltosConvert.imperial_units);
+       public double parse_locale(String s) throws ParseException {
+               return parse_locale(s, AltosConvert.imperial_units);
+       }
+
+       public double parse_net(String s) throws ParseException {
+               return parse_net(s, AltosConvert.imperial_units);
        }
 
        public double value(double v) {
@@ -105,4 +116,4 @@ public abstract class AltosUnits {
        public String say_units(double v) {
                return say_units(v, AltosConvert.imperial_units);
        }
-}
\ No newline at end of file
+}