Groovy:字符串到浮点的转换

时间:2019-01-11 19:25:04

标签: groovy floating-point

下面的代码用于保存浮点数

domainInstance.standardScore = params["standardScore"] as float

在这种情况下,我的输入为 17.9 ,在db2数据库中另存为 17.899999618530273 ,但是我想另存为17.9,让我知道如何做< / p>

2 个答案:

答案 0 :(得分:5)

在Java中,您无法将精度设置为FloatDouble。您需要使用BigDecimal

domainInstance.standardScore = new BigDecimal(params["standardScore"]).setScale(1, BigDecimal.ROUND_HALF_UP);

方法BigDecimal.setScale(1, ...)仅将小数限制为一位。第二个参数是舍入策略。

答案 1 :(得分:1)

您需要使用BigDecimalString进行转换,然后使用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()