diff options
| author | Joshua Rahm <joshua.rahm@colorado.edu> | 2015-01-30 17:11:48 -0700 |
|---|---|---|
| committer | Joshua Rahm <joshua.rahm@colorado.edu> | 2015-01-30 17:11:48 -0700 |
| commit | 1c5e38fe69ac8a6decbdd8abe93112f4e3369315 (patch) | |
| tree | 926cef8cb76d46862ed2c4ec7028720611e47476 /src/utilities/DecimalFormatter.java | |
| download | Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.tar.gz Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.tar.bz2 Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.zip | |
added source
Diffstat (limited to 'src/utilities/DecimalFormatter.java')
| -rw-r--r-- | src/utilities/DecimalFormatter.java | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/src/utilities/DecimalFormatter.java b/src/utilities/DecimalFormatter.java new file mode 100644 index 0000000..a6b084e --- /dev/null +++ b/src/utilities/DecimalFormatter.java @@ -0,0 +1,109 @@ +/* */ package utilities; +/* */ +/* */ import java.math.BigDecimal; +/* */ import java.math.MathContext; +/* */ +/* */ public abstract class DecimalFormatter +/* */ { +/* */ private int sigFigs; +/* */ private String sigstr; +/* */ private boolean flt; +/* */ +/* */ public DecimalFormatter(int sigFigs, boolean flt) +/* */ { +/* 17 */ this.sigFigs = sigFigs; +/* 18 */ this.flt = flt; +/* 19 */ this.sigstr = ""; +/* 20 */ for (int i = 0; i < sigFigs + 1; i++) this.sigstr += "0"; +/* */ } +/* */ +/* 23 */ public String scientificNotation(BigDecimal d) { int hold = 0; +/* 24 */ boolean negatory = d.compareTo(BigDecimal.ZERO) == -1; +/* 25 */ if (negatory) d = d.abs(); +/* 26 */ while (d.compareTo(BigDecimal.ONE) == -1) +/* */ { +/* 28 */ d = d.multiply(BigDecimal.TEN); +/* 29 */ hold--; +/* */ } +/* 31 */ while (d.compareTo(BigDecimal.TEN) == 1) +/* */ { +/* 33 */ d = d.divide(BigDecimal.TEN); +/* 34 */ hold++; +/* */ } +/* */ +/* 37 */ String dec = roundTo(d, this.sigFigs - 1).toString(); +/* 38 */ if (!this.flt) { +/* 39 */ dec = removeTrailingZeros(dec); +/* */ } +/* 41 */ return (negatory ? "-" : "") + dec.substring(0, this.sigFigs + 1) + "*10^" + hold; } +/* */ +/* */ public String scientificNotation(String num) { +/* 44 */ return scientificNotation(new BigDecimal(num)); +/* */ } +/* */ public String scientificNotation(double num) { +/* 47 */ return scientificNotation(new BigDecimal(num)); +/* */ } +/* */ public String eNotation(BigDecimal d) { +/* 50 */ int hold = 0; +/* 51 */ boolean negatory = d.compareTo(BigDecimal.ZERO) == -1; +/* 52 */ if (negatory) d = d.abs(); +/* 53 */ while (d.compareTo(BigDecimal.ONE) == -1) +/* */ { +/* 55 */ d = d.multiply(BigDecimal.TEN); +/* 56 */ hold--; +/* */ } +/* 58 */ while (d.compareTo(BigDecimal.TEN) == 1) +/* */ { +/* 60 */ d = d.divide(BigDecimal.TEN); +/* 61 */ hold++; +/* */ } +/* */ +/* 64 */ String dec = roundTo(d, this.sigFigs - 1).toString(); +/* 65 */ if (!this.flt) { +/* 66 */ dec = removeTrailingZeros(dec); +/* */ } +/* 68 */ return (negatory ? "-" : "") + dec + "e" + hold; +/* */ } +/* */ public static BigDecimal roundTo(BigDecimal b, int to) { +/* 71 */ b = b.movePointRight(to); +/* 72 */ b = b.round(MathContext.DECIMAL64); +/* 73 */ b = b.movePointLeft(to); +/* 74 */ return b; +/* */ } +/* */ public String eNotation(String num) { +/* 77 */ return eNotation(new BigDecimal(num)); +/* */ } +/* */ public String eNotation(double num) { +/* 80 */ return eNotation(new BigDecimal(num)); +/* */ } +/* */ public String getSigFigs(String num) { +/* 83 */ boolean rec = false; +/* 84 */ String ret = ""; +/* 85 */ int cnt = 0; +/* 86 */ for (int i = 0; (i < num.length()) && (cnt < this.sigFigs); i++) { +/* 87 */ ret = ret + num.charAt(i); +/* 88 */ if ((num.charAt(i) != '0') && (num.charAt(i) != '.') && (!rec)) rec = true; +/* 89 */ if (rec) cnt++; +/* */ } +/* 91 */ return ret; +/* */ } +/* */ private static String removeTrailingZeros(String str) { +/* 94 */ if (!str.contains(".")) return str; +/* 95 */ for (int i = str.length() - 1; i >= 0; i--) { +/* 96 */ if (str.charAt(i) != '0') +/* 97 */ return str.substring(0, i + 1); +/* */ } +/* 99 */ return str; +/* */ } +/* */ public abstract String format(String paramString); +/* */ +/* 103 */ public void setFigs(int sigFigs) { this.sigFigs = sigFigs; +/* 104 */ this.sigstr = ""; +/* 105 */ for (int i = 0; i < sigFigs + 1; i++) this.sigstr += "0"; +/* */ } +/* */ } + +/* Location: Modulus.jar + * Qualified Name: utilities.DecimalFormatter + * JD-Core Version: 0.6.2 + */
\ No newline at end of file |