TF-EssentialsX/Essentials/src/com/earth2me/essentials/utils/NumberUtil.java

74 lines
2.4 KiB
Java
Raw Normal View History

2013-06-08 22:31:19 +01:00
package com.earth2me.essentials.utils;
2015-04-14 23:06:16 -05:00
import net.ess3.api.IEssentials;
2013-06-08 22:31:19 +01:00
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
2016-01-13 22:54:00 +00:00
import java.text.NumberFormat;
2013-06-08 22:31:19 +01:00
import java.util.Locale;
2015-04-14 23:06:16 -05:00
import static com.earth2me.essentials.I18n.tl;
2013-06-08 22:31:19 +01:00
2015-04-14 23:06:16 -05:00
public class NumberUtil {
static DecimalFormat twoDPlaces = new DecimalFormat("#,###.##");
static DecimalFormat currencyFormat = new DecimalFormat("#0.00", DecimalFormatSymbols.getInstance(Locale.US));
// This field is likely to be modified in com.earth2me.essentials.Settings when loading currency format.
// This ensures that we can supply a constant formatting.
2016-01-13 22:54:00 +00:00
static final NumberFormat PRETTY_FORMAT = NumberFormat.getInstance(Locale.US);
static {
twoDPlaces.setRoundingMode(RoundingMode.HALF_UP);
currencyFormat.setRoundingMode(RoundingMode.FLOOR);
PRETTY_FORMAT.setRoundingMode(RoundingMode.FLOOR);
PRETTY_FORMAT.setGroupingUsed(true);
PRETTY_FORMAT.setMinimumFractionDigits(2);
PRETTY_FORMAT.setMaximumFractionDigits(2);
}
2015-04-14 23:06:16 -05:00
public static String shortCurrency(final BigDecimal value, final IEssentials ess) {
return ess.getSettings().getCurrencySymbol() + formatAsCurrency(value);
}
public static String formatDouble(final double value) {
return twoDPlaces.format(value);
}
public static String formatAsCurrency(final BigDecimal value) {
String str = currencyFormat.format(value);
if (str.endsWith(".00")) {
str = str.substring(0, str.length() - 3);
}
return str;
}
2016-01-13 22:54:00 +00:00
public static String formatAsPrettyCurrency(BigDecimal value) {
String str = PRETTY_FORMAT.format(value);
if (str.endsWith(".00")) {
str = str.substring(0, str.length() - 3);
}
return str;
}
2015-04-14 23:06:16 -05:00
public static String displayCurrency(final BigDecimal value, final IEssentials ess) {
2016-01-13 22:54:00 +00:00
return tl("currency", ess.getSettings().getCurrencySymbol(), formatAsPrettyCurrency(value));
2015-04-14 23:06:16 -05:00
}
public static String displayCurrencyExactly(final BigDecimal value, final IEssentials ess) {
return tl("currency", ess.getSettings().getCurrencySymbol(), value.toPlainString());
}
2015-04-14 23:06:16 -05:00
public static boolean isInt(final String sInt) {
try {
Integer.parseInt(sInt);
} catch (NumberFormatException e) {
return false;
}
return true;
}
2013-06-08 22:31:19 +01:00
}