public BigDecimal asBigDecimal() {
        String result = value.replaceAll("_", "");
        char lastChar = result.charAt(result.length() - 1);
        if (lastChar == 'B') {
            result = result.substring(0, result.length() - 1);
        }
        return new BigDecimal(result);
    }
public BigDecimal asBigDecimal ( ) { String result = value . replaceAll ( "_" , "" ) ; char lastChar = result . charAt ( result . length ( ) - 1 ) ; if ( lastChar == 'B' ) { result = result . substring ( 0 , result . length ( ) - 1 ) ; } return new BigDecimal ( result ) ; }
@return the literal value as an long while respecting different number representations