diff options
author | Martin Robertz <dream-master@gmx.net> | 2021-08-07 23:52:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-07 23:52:52 +0200 |
commit | a36a64987573d87e34059557793b033c60d5e4b6 (patch) | |
tree | 7e1a388fded468f5af82b07b81ae204319eb8e05 /src/main/java/gregtech/api/util | |
parent | bdbdabf92eb756b886a851bfdf4a0022745c7a1d (diff) | |
parent | 72c54aa140492f25d3ce4a03d61abb7de9642f87 (diff) | |
download | GT5-Unofficial-a36a64987573d87e34059557793b033c60d5e4b6.tar.gz GT5-Unofficial-a36a64987573d87e34059557793b033c60d5e4b6.tar.bz2 GT5-Unofficial-a36a64987573d87e34059557793b033c60d5e4b6.zip |
Merge pull request #630 from D-Cysteine/format-numbers
Add number formatting for tooltips & recipes
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_Utility.java | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 94195d76ce..f1f83c3c14 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -79,7 +79,6 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; -import java.text.NumberFormat; import java.util.*; import java.util.Map.Entry; import java.util.function.IntFunction; @@ -95,6 +94,11 @@ import static gregtech.common.GT_UndergroundOil.undergroundOilReadInformation; * Just a few Utility Functions I use. */ public class GT_Utility { + /** Formats a number with group separator and at most 2 fraction digits. */ + private static final DecimalFormat basicFormatter = new DecimalFormat(); + /** Formats a number into scientific notation with at most 2 fraction digits. Meant for large numbers. */ + private static final DecimalFormat scientificNotationFormatter = new DecimalFormat("0.##E0"); + /** * Forge screwed the Fluid Registry up again, so I make my own, which is also much more efficient than the stupid Stuff over there. */ @@ -108,6 +112,11 @@ public class GT_Utility { public static UUID defaultUuid = null; // maybe default non-null? UUID.fromString("00000000-0000-0000-0000-000000000000"); static { + DecimalFormatSymbols symbols = basicFormatter.getDecimalFormatSymbols(); + symbols.setGroupingSeparator(' '); + basicFormatter.setDecimalFormatSymbols(symbols); + basicFormatter.setMaximumFractionDigits(2); + GregTech_API.sItemStackMappings.add(sFilledContainerToData); GregTech_API.sItemStackMappings.add(sEmptyContainerToFluidToData); } @@ -2221,10 +2230,19 @@ public class GT_Utility { } public static String formatNumbers(long aNumber) { - DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US); - DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); - symbols.setGroupingSeparator(' '); - return formatter.format(aNumber); + String formatted = basicFormatter.format(aNumber); + if (aNumber >= 1_000_000_000L) { + formatted += " [" + scientificNotationFormatter.format(aNumber) + "]"; + } + return formatted; + } + + public static String formatNumbers(double aNumber) { + String formatted = basicFormatter.format(aNumber); + if (aNumber >= 1_000_000_000d) { + formatted += " [" + scientificNotationFormatter.format(aNumber) + "]"; + } + return formatted; } /* |