springmvc中@PathVariable传Double精度丢失

页面请求

http://localhost:8080/test/3.201

后端接受数据

/**
     * 测试
     *
     * @param number
     */
    @RequestMapping(value = "/test/{number}", method = RequestMethod.GET)
    public void test(@PathVariable Double number) {
        System.out.println("数字:" + number);
    }

结果

数字:3.0

改为下面的方式就可以

/**
     * 测试
     *
     * @param number
     */
    @RequestMapping(value = "/test/{number:.+}", method = RequestMethod.GET)
    //或者@RequestMapping(value = "/test/{number:.*}", method = RequestMethod.GET)
    public void test(@PathVariable Double number) {
        System.out.println("数字:" + number);
    }

建议传递带小数类型,最好用实体类接受,属性放在实体类中,用 BigDecimal 类型,数字更精确

原文地址:https://www.cnblogs.com/skyessay/p/7233307.html