使用Java将超过20位的字符串转换为数字

时间:2016-10-21 20:02:48

标签: java double bigdecimal

我有这个字符串:

0.023526112354180534 

如何将此字符串转换为数字,可能还有更多数字?我试过Double.parseDouble而不能正常工作

修改

你是对的。

我正在通过Javascript拨打电话,我的电话是:

url : "/myapp/data/selectedCampaign/thermal/"+data

data = 0.023526112354180534

当我在Spring中输入此方法时

@RequestMapping(value = "/selectedCampaign/{type}/{evidenceValue}", method = RequestMethod.GET)
    public @ResponseBody List<Double> getValues(@PathVariable("type") String type,
            @PathVariable("evidenceValue") String evidenceValue)

evidenceValue为0,我解析为0

我仍然不知道为什么。 编辑2

我通过转到:

来解决这个问题

Spring MVC @PathVariable with dot (.) is getting truncated

2 个答案:

答案 0 :(得分:2)

使用new BigDecimal("0.023526112354180534");

答案 1 :(得分:1)

double d = Double.parseDouble("0.023526112354180534");
System.out.println(d);

至少在没有精确损失的情况下对我没有任何问题

编辑:据我所知,Double.parseDouble(String)和BigDecimal之间的唯一区别是精度,所以如果精度很重要,你应该使用BigDecimal