/******************************************************************************* * Copyright (c) quickfixengine.org All rights reserved. * * This file is part of the QuickFIX FIX Engine * * This file may be distributed under the terms of the quickfixengine.org * license as defined by quickfixengine.org and appearing in the file * LICENSE included in the packaging of this file. * * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE. * * See http://www.quickfixengine.org/LICENSE for licensing information. * * Contact ask@quickfixengine.org if any conditions of this licensing * are not clear to you. ******************************************************************************/ package quickfix.field.converter; import java.math.BigDecimal; import quickfix.FieldConvertError; public class DecimalConverter { /** * Converts a double to a string with no padding. * @param d the BigDecimal to convert * @return the formatted String representing the incoming decimal. * @see #convert(BigDecimal, int) */ public static String convert(BigDecimal d) { return d.toPlainString(); } /** * Converts a decimal to a string with padding. * @param d the decimal to convert * @param padding the number of zeros to add to end of the formatted decimal * @return the formatted String representing the decimal. */ public static String convert(BigDecimal d, int padding) { return DoubleConverter.getDecimalFormat(padding).format(d); } /** * Convert a String value to a decimal. * @param value the String value to convert * @return the parsed BigDecimal * @throws FieldConvertError if the String is not a valid decimal pattern. */ public static BigDecimal convert(String value) throws FieldConvertError { try { return new BigDecimal(value); } catch (NumberFormatException e) { throw new FieldConvertError("invalid double value: " + value); } } }