在我的 Grails 项目中,我有一个带有双字段的域类,如下所示:
double totalAmount;
该字段的值是通过在多选中选择值后完成的总和来计算的。总和值的功能在控制器中,如下所示:
def sumReceiptItems(){
params.list("receiptItemsSelected").each {i-> println("element "+i)}
def appList = params.list("receiptItemsSelected")
List<ReceiptItem> allSelectedIds = ReceiptItem.findAllByIdInList(params.receiptItemsSelected.split(',')*.toLong())
def totalAmount = allSelectedIds.amount.sum()
println("totalAmount is = "+totalAmount)
render totalAmount as Double
}
该功能运行良好。在函数调用之后,为了更新 GSP 页面中的字段,我使用了一个 javascript 方法,如下所示:
function updateTotalAmount(name, data, presentNullAsThis){
if(data !=null)
document.getElementById(name).value= data;
else
document.getElementById(name).value=presentNullAsThis;
}
javascript 有效,我在运行时看到该字段的更新,但双精度值显示为一个点,而不是用逗号分隔十进制值。事实上,点击保存按钮保存域类的实例后,保存的值不分隔小数,例如:
如果字段中的值为 10.50,则存储为 1050
在这个讨论中,如何在 grails 中正确保存双精度类型?我读过类似的问题,但解决方案对我的问题不利。
任何人都可以帮助我吗?