else if(o instanceof Boolean) return new BigDecimal(((Boolean)o).booleanValue()?1:0);
else if(o instanceof String) return new BigDecimal(o.toString());
else if(o instanceof Castable) return new BigDecimal(((Castable)o).castToDoubleValue());
else if(o == null) return BigDecimal.ZERO;
else if(o instanceof ObjectWrap) return toBigDecimal(((ObjectWrap)o).getEmbededObject());
throw new CasterException(o,"number");
}