gpt4 book ai didi

grails - Grails和双值保存

转载 作者:行者123 更新时间:2023-12-02 15:31:44 26 4
gpt4 key购买 nike

在我的Grails项目中,我有一个具有 double 字段的Domain Class,如下所示:

double totalAmount;

该字段的值是通过在多次选择中选择值后得出的总和来计算的。求和值的功能在 Controller 中,如下所示:
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可以正常工作,并且在运行时我看到该字段的更新,但是double值显示为一个点,而不是逗号来分隔十进制值。实际上,单击“保存”按钮以保存域类的实例后,该值将被保存而不会分隔小数,例如:

如果字段中的值为10.50,则将其存储为1050

how can save a double type correctly in grails?的讨论中,我读过类似的问题,但是解决方案对我的问题不利。

有人可以帮助我吗?

最佳答案

带小数点分隔符的值取决于用户当前的Locale。通常,您在 View 中使用g.formatNumber可以正确显示该值。

您可以检查this topic关于如何发现语言环境的小数点分隔符。

要获取用户的语言环境,请使用:

Locale locale = RequestContextUtils.getLocale(request)

关于grails - Grails和双值保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18189703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com