1 Clazz.declarePackage ("JU");
\r
2 Clazz.load (["java.lang.Boolean"], "JU.DF", ["java.lang.Double", "$.Float", "JU.PT", "$.SB"], function () {
\r
3 c$ = Clazz.declareType (JU, "DF");
\r
4 c$.setUseNumberLocalization = Clazz.defineMethod (c$, "setUseNumberLocalization",
\r
6 JU.DF.useNumberLocalization[0] = (TF ? Boolean.TRUE : Boolean.FALSE);
\r
8 c$.formatDecimalDbl = Clazz.defineMethod (c$, "formatDecimalDbl",
\r
9 function (value, decimalDigits) {
\r
10 if (decimalDigits == 2147483647 || value == -Infinity || value == Infinity || Double.isNaN (value)) return "" + value;
\r
11 return JU.DF.formatDecimal (value, decimalDigits);
\r
13 c$.formatDecimal = Clazz.defineMethod (c$, "formatDecimal",
\r
14 function (value, decimalDigits) {
\r
15 if (decimalDigits == 2147483647 || value == -Infinity || value == Infinity || Float.isNaN (value)) return "" + value;
\r
17 if (decimalDigits < 0) {
\r
18 decimalDigits = -decimalDigits;
\r
19 if (decimalDigits > JU.DF.formattingStrings.length) decimalDigits = JU.DF.formattingStrings.length;
\r
20 if (value == 0) return JU.DF.formattingStrings[decimalDigits] + "E+0";
\r
23 if (Math.abs (value) < 1) {
\r
29 }var s = ("" + d).toUpperCase ();
\r
30 var i = s.indexOf ("E");
\r
31 n = JU.PT.parseInt (s.substring (i + 1)) + n;
\r
32 return (i < 0 ? "" + value : JU.DF.formatDecimal (JU.PT.parseFloat (s.substring (0, i)), decimalDigits - 1) + "E" + (n >= 0 ? "+" : "") + n);
\r
33 }if (decimalDigits >= JU.DF.formattingStrings.length) decimalDigits = JU.DF.formattingStrings.length - 1;
\r
34 var s1 = ("" + value).toUpperCase ();
\r
35 var pt = s1.indexOf (".");
\r
36 if (pt < 0) return s1 + JU.DF.formattingStrings[decimalDigits].substring (1);
\r
37 var isNeg = s1.startsWith ("-");
\r
39 s1 = s1.substring (1);
\r
41 }var pt1 = s1.indexOf ("E-");
\r
43 n = JU.PT.parseInt (s1.substring (pt1 + 1));
\r
44 s1 = "0." + "0000000000000000000000000000000000000000".substring (0, -n - 1) + s1.substring (0, 1) + s1.substring (2, pt1);
\r
46 }pt1 = s1.indexOf ("E");
\r
48 n = JU.PT.parseInt (s1.substring (pt1 + 1));
\r
49 s1 = s1.substring (0, 1) + s1.substring (2, pt1) + "0000000000000000000000000000000000000000";
\r
50 s1 = s1.substring (0, n + 1) + "." + s1.substring (n + 1);
\r
51 pt = s1.indexOf (".");
\r
52 }var len = s1.length;
\r
53 var pt2 = decimalDigits + pt + 1;
\r
54 if (pt2 < len && s1.charAt (pt2) >= '5') {
\r
55 return JU.DF.formatDecimal (value + (isNeg ? -1 : 1) * JU.DF.formatAdds[decimalDigits], decimalDigits);
\r
56 }var sb = JU.SB.newS (s1.substring (0, (decimalDigits == 0 ? pt : ++pt)));
\r
57 for (var i = 0; i < decimalDigits; i++, pt++) {
\r
58 if (pt < len) sb.appendC (s1.charAt (pt));
\r
59 else sb.appendC ('0');
\r
61 s1 = (isNeg ? "-" : "") + sb;
\r
62 return (Boolean.TRUE.equals (JU.DF.useNumberLocalization[0]) ? s1 : s1.$replace (',', '.'));
\r
64 c$.formatDecimalTrimmed = Clazz.defineMethod (c$, "formatDecimalTrimmed",
\r
65 function (x, precision) {
\r
66 var str = JU.DF.formatDecimalDbl (x, precision);
\r
67 var m = str.length - 1;
\r
69 while (m >= 0 && str.charAt (m) == zero) m--;
\r
71 return str.substring (0, m + 1);
\r
73 Clazz.defineStatics (c$,
\r
74 "formattingStrings", Clazz.newArray (-1, ["0", "0.0", "0.00", "0.000", "0.0000", "0.00000", "0.000000", "0.0000000", "0.00000000", "0.000000000"]),
\r
75 "zeros", "0000000000000000000000000000000000000000",
\r
76 "formatAdds", Clazz.newFloatArray (-1, [0.5, 0.05, 0.005, 0.0005, 0.00005, 0.000005, 0.0000005, 0.00000005, 0.000000005, 0.0000000005]));
\r
77 c$.useNumberLocalization = c$.prototype.useNumberLocalization = Clazz.newArray (-1, [Boolean.TRUE]);
\r