BigInteger big = s == null ? null : new BigInteger(s);
Data data = create();
if (data instanceof DecimalData) {
DecimalData dData = (DecimalData) data;
BigDecimal bigD = big == null ? null : new BigDecimal(big, decimalPlaces());
dData.setValue(bigD);
return data;
} else {
IntegerData iData = (IntegerData) data;