Groovy:String to float转换

use*_*774 1 floating-point groovy

使用下面的代码来保存float的值

domainInstance.standardScore = params["standardScore"] as float
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的输入为17.9,在db2数据库中保存为17.899999618530273,但我想保存为17.9本身,让我知道如何做到这一点

Rap*_*ael 5

您无法将精度设置为 Java FloatDoubleJava.你需要使用BigDecimal.

domainInstance.standardScore = new BigDecimal(params["standardScore"]).setScale(1, BigDecimal.ROUND_HALF_UP);
Run Code Online (Sandbox Code Playgroud)

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