下面的代码用于保存浮点数
domainInstance.standardScore = params["standardScore"] as float
在这种情况下,我的输入为 17.9 ,在db2数据库中另存为 17.899999618530273 ,但是我想另存为17.9,让我知道如何做< / p>
答案 0 :(得分:5)
在Java中,您无法将精度设置为Float
或Double
。您需要使用BigDecimal
。
domainInstance.standardScore = new BigDecimal(params["standardScore"]).setScale(1, BigDecimal.ROUND_HALF_UP);
方法BigDecimal.setScale(1, ...)
仅将小数限制为一位。第二个参数是舍入策略。
答案 1 :(得分:1)
您需要使用BigDecimal
从String
进行转换,然后使用BigDecimal(value).floatValue()
获得float
,您可以使用多种示例方式进行操作
1-在setScale
中使用BigDecimal
def temp = new BigDecimal(params["standardScore"]).setScale(1, BigDecimal.ROUND_HALF_UP)
2-使用DecimalFormat
DecimalFormat df = new DecimalFormat("#.0");
def temp = new BigDecimal(df.format(params["standardScore"] ))
然后您需要获取浮点值
domainInstance.standardScore = temp.floatValue()