mirror of https://github.com/gnosygnu/xowa
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
2.4 KiB
53 lines
2.4 KiB
/*
|
|
XOWA: the XOWA Offline Wiki Application
|
|
Copyright (C) 2012-2017 gnosygnu@gmail.com
|
|
|
|
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
|
|
or alternatively under the terms of the Apache License Version 2.0.
|
|
|
|
You may use XOWA according to either of these licenses as is most appropriate
|
|
for your project on a case-by-case basis.
|
|
|
|
The terms of each license can be found in the source code repository:
|
|
|
|
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
|
*/
|
|
package gplx;
|
|
public class Double_ {
|
|
public static final String Cls_val_name = "double";
|
|
public static final Class<?> Cls_ref_type = Double.class;
|
|
public static final double
|
|
MinValue = Double.MIN_VALUE
|
|
, NaN = Double.NaN
|
|
, Inf_pos = Double.POSITIVE_INFINITY
|
|
;
|
|
public static final byte[]
|
|
NaN_bry = Bry_.new_a7("NaN")
|
|
, Inf_pos_bry = Bry_.new_a7("INF")
|
|
;
|
|
public static boolean IsNaN(double v) {return Double.isNaN(v);}
|
|
public static double cast(Object o) {try {return (Double)o;} catch(Exception e) {throw Err_.new_type_mismatch_w_exc(e, double.class, o);}}
|
|
public static double parse(String raw) {try {return Double.parseDouble(raw);} catch(Exception e) {throw Err_.new_parse_exc(e, double.class, raw);}}
|
|
public static double parse_or(String raw, double v) {try {return Double.parseDouble(raw);} catch(Exception e) {Err_.Noop(e); return v;}}
|
|
public static double coerce_(Object v) {
|
|
try {String s = String_.as_(v); return s == null ? Double_.cast(v) : Double_.parse(s);}
|
|
catch (Exception e) {throw Err_.new_cast(e, double.class, v);}
|
|
}
|
|
public static String To_str(double v) {
|
|
int v_int = (int)v;
|
|
return v - v_int == 0 ? Int_.To_str(v_int) : Double.toString(v);
|
|
}
|
|
public static String To_str_loose(double v) {
|
|
int v_as_int = (int)v;
|
|
return v == v_as_int
|
|
? Int_.To_str(v_as_int) // convert to int, and call print String to eliminate any trailing decimal places
|
|
: Float_.To_str((float)v); // calling ((float)v).toString is better at removing trailing 0s than String.format("%g", v). note that .net .toString() handles it better; EX:2449.600000000000d; DATE:2014-07-29
|
|
}
|
|
public static int Compare(double lhs, double rhs) {
|
|
if (lhs == rhs) return CompareAble_.Same;
|
|
else if (lhs < rhs) return CompareAble_.Less;
|
|
else return CompareAble_.More;
|
|
}
|
|
}
|