我有一个包含一些数据和配置参数的文件,在将其用作POST调用的主体数据之前,需要对其进行更改。
所以我使用slurper来获取配置值
JsonSlurper slurper = new JsonSlurper()
def inputFile = new File("file.json")
def parsedInput = slurper.parse(inputFile)然后,我将更改所需的配置参数
parsedInput.config.id = 1然后将修改后的输入文件写入临时文件
def tempFile = new File("temp.json")
tempFile.write(JsonOutput.toJson(parsedInput))当我意识到输出文件比输入文件大三倍时,我非常惊讶。我已经检查了内容,它看起来像是slurper改变了浮动精度。
修改前
0.145,
0.144,
0.145,修改后
0.1459999999999999908961711980737163685262203216552734375,
0.1449999999999999900079927783735911361873149871826171875,
0.1459999999999999908961711980737163685262203216552734375有什么办法解决这个问题吗?
编辑1:添加了一些输入数据
http://wklej.org/hash/4de6639a5bf/txt/
发布于 2016-04-06 18:55:47
检查你的groovy版本,应该在2011年底之前修复(https://issues.apache.org/jira/browse/GROOVY-5129)
https://stackoverflow.com/questions/36448465
复制相似问题