tangem-app-android-audited/app/src/main/java/com/tangem/util/FormatUtil.java
2018-10-04 12:48:07 +03:00

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;
}
}