throw new UnsupportedOperationException(String.format("can't convert %s to BigDecimal", _getValue())); return new BigDecimal(this.getValue());
public void serialize(Object obj, StringBuilder buf) { BasicBSONObject temp = new BasicBSONObject(); BSONDecimal t = null; if (obj instanceof BigDecimal) { t = new BSONDecimal((BigDecimal)obj); } else { t = (BSONDecimal)obj; } String data = t.getValue(); int precision = t.getPrecision(); int scale = t.getScale(); temp.put("$decimal", data); if (precision != -1 || scale != -1) { BSONObject arr = new BasicBSONList(); arr.put("0", precision); arr.put("1", scale); temp.put("$precision", arr); } serializer.serialize(temp, buf); }