我遇到了将请求参数绑定到域类中的BigDecimal字段的问题。
当我在持续时间字段中输入25.75时,数据被正确序列化,持续时间以正确的精度传递给请求中的控制器。
控制器操作:
def save() {
// params.duration is 25.75 (debugged and printed to the console)
def entry = new Entry(params)
// entry.duration is now 25
// the precision is lost..
// 125.25 converts to 125
// 1.75 converts to 1
...
}
域类:
class Entry {
BigDecimal duration
static constraints = {
duration(min: 0.01G, max: 168.00G, scale: 2)
}
}
MySQL数据库中的列类型是DECIMAL(5,2)。
我错过了一些明显的东西吗?
修改 使用Grails版本2.2.0。
答案 0 :(得分:2)
您的区域设置/浏览器语言是什么?数字解析依赖于语言环境。因此,如果您的语言环境的小数点分隔符是“,”(逗号)而不是“。”,那么您将在数据绑定后获得整数(如您所述)。尝试将您的语言环境更改为“en”并再次检查。