87 lines
No EOL
2.8 KiB
Java
87 lines
No EOL
2.8 KiB
Java
package com.tangem.util;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigInteger;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormatSymbols;
|
|
import java.util.Locale;
|
|
|
|
/**
|
|
* Created by Ilia on 15.02.2018.
|
|
*/
|
|
|
|
public class FormatUtil {
|
|
public static long parseValue(String valueStr) throws NumberFormatException {
|
|
return new BigDecimal(valueStr).multiply(BigDecimal.valueOf(1_0000_0000)).setScale(0, BigDecimal.ROUND_HALF_DOWN).longValueExact();
|
|
}
|
|
|
|
public static String DoubleToString(double amount) {
|
|
DecimalFormat myFormatter = GetDecimalFormat();
|
|
String output = myFormatter.format(amount);
|
|
return output;
|
|
}
|
|
|
|
public static DecimalFormat GetDecimalFormat() {
|
|
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
|
|
symbols.setDecimalSeparator('.');
|
|
|
|
String pattern = "#0.########";
|
|
// DecimalFormat myFormatter = new DecimalFormat(pattern, symbols);
|
|
DecimalFormat myFormatter = new DecimalFormat(pattern);
|
|
|
|
myFormatter.setParseBigDecimal(true);
|
|
|
|
return myFormatter;
|
|
}
|
|
|
|
public static BigDecimal stringToBigDecimal(final String formattedString,
|
|
final Locale locale)
|
|
{
|
|
final DecimalFormatSymbols symbols;
|
|
final char groupSeparatorChar;
|
|
final String groupSeparator;
|
|
final char decimalSeparatorChar;
|
|
final String decimalSeparator;
|
|
String fixedString;
|
|
final BigDecimal number;
|
|
|
|
symbols = new DecimalFormatSymbols(locale);
|
|
groupSeparatorChar = symbols.getGroupingSeparator();
|
|
decimalSeparatorChar = symbols.getDecimalSeparator();
|
|
|
|
if(groupSeparatorChar == '.')
|
|
{
|
|
groupSeparator = "\\" + groupSeparatorChar;
|
|
}
|
|
else
|
|
{
|
|
groupSeparator = Character.toString(groupSeparatorChar);
|
|
}
|
|
|
|
if(decimalSeparatorChar == '.')
|
|
{
|
|
decimalSeparator = "\\" + decimalSeparatorChar;
|
|
}
|
|
else
|
|
{
|
|
decimalSeparator = Character.toString(decimalSeparatorChar);
|
|
}
|
|
|
|
fixedString = formattedString.replaceAll(groupSeparator , "");
|
|
fixedString = fixedString.replaceAll(decimalSeparator , ".");
|
|
number = new BigDecimal(fixedString);
|
|
|
|
return (number);
|
|
}
|
|
|
|
public static long ConvertStringToLong(String caption) throws Exception {
|
|
// BigDecimal d = new BigDecimal(caption);
|
|
BigDecimal d = stringToBigDecimal(caption,Locale.US);
|
|
d = d.multiply(new BigDecimal(100000000));
|
|
d = d.setScale(5);
|
|
BigInteger b = d.toBigInteger();
|
|
long l = b.longValue();
|
|
return l;
|
|
}
|
|
|
|
} |