double price = ((Double)map.get("price")).doubleValue();
map 是 Map的对象,我想从map中取出price的值(类型为double),却在这一句发生异常java.math.BigDecimal真不知道从何下手,请求大侠帮我解决!

解决方案 »

  1.   

    你是不是map中存的是<String,BigDecimal>,却打算把取出来的BigDecimal 强转成Double啊?
      

  2.   

    简单的例子:
    import java.math.BigDecimal;
    import java.util.HashMap;
    import java.util.Map;public class Test {    public static void main(String[] args) {
            // 使用String,Double对
            Map<String, Double> map = new HashMap<String, Double>();
            map.put("price", 45.0);
            Double d = map.get("price");
            if (d != null) {
                double price = d.doubleValue();
                System.out.println(price);
            }        //使用String,BigDecimal对
            Map<String, BigDecimal> map2 = new HashMap<String, BigDecimal>();
            map2.put("price", new BigDecimal("45.0"));
            BigDecimal decimal = map2.get("price");
            if (decimal != null) {
                double price = decimal.doubleValue();
                System.out.println(price);
            }
        }
    }
      

  3.   

    我在map中存的数据库里的数据,用得到是resultset转换成result,把result用getrow方法得到map的对象过程是这样的但是其中是否有数据类型的转换我不是很清楚啊
      

  4.   

    Object obj=map.get("price");
    if(obj!=null){
        System.out.println(obj.getClass());
    }
    这样看一下到底是什么类型的,如果是Double或者BigDecimal应该可以使用我提供的小例子来处理.