gpt4 book ai didi

grails - Grails-Inputfields显示一个十进制数字的点('.'而不是(',')

转载 作者:行者123 更新时间:2023-12-02 14:49:18 25 4
gpt4 key购买 nike

在edit.gsp中,我有十进制数字的输入字段,该十进制数字显示为'3.123',如果我将其保存:由于小数点有误,我出错了!它期望一个“,”。我的语言环境是瑞典。
因此,我必须为所有十进制数字手动用逗号替换点。

我整周都在寻找,找不到任何解决方案。
Grails是否应该保持一致并在保存时期望逗号时显示逗号?
它应该与BigDecimal和double一起使用。

我有Grails 3.2.4

以下是编辑表单中的“g:field”示例:

    Bredd: <g:field type="number decimal" name="width" min="20" max="300" required="Y" value="${request1?.width}" style="width: 4em"/>

那么,我该怎么办?

最佳答案

manually replacing dots听起来很可怕,而且可能是错误的方法。
周围移动了答案片段
因此,自从我今天遇到类似问题以来,答案的更新也许反过来了。如果验证失败,则通过另一个3333发送数字,这是由于另一个原因,验证失败后,字段中的数字已变为3,333。如果旧的验证问题已解决,由于数字中的逗号,现在将失败。
原来的原因是:<g:textField value="${fieldValue(bean: instance, field: 'someField')}" 返回时将数字更改为3333

value="${instance.someField}"
上面是实际问题,@ larand面临
我会将输入字段 width存储为简短形式
所以:
Class MyClass {

//if you are storing a number like 123 (non decimal)
Short width
//if you are storing 12.12 which becomes 1212 when stored
Integer width

BigDecimal getDecimalWidth() {
return new BigDecimal(this.width).movePointRight(2).setScale(2)
}
void setWidth(BigDecimal decimal) {
this.width=new BigDecimal(decimal).movePointLeft(2).setScale(2)
}
//unsure but think this should work
Integer getWidthInteger() {
return this.width as int
}
void setWidth(Integer integer) {
this.width=(byte)integer
}
}
然后,这将为您提供一些方法,以使用 ${instance.decimalWidth}或整数获取短值作为大十进制数: ${instance.widthInteger} 当您的字段是 actually numeric时: <g:formatNumber number="${myCurrencyAmount}" type="currency" currencyCode="EUR" />对我来说,这似乎比切碎您认为的数字更直接,更简洁
在第一次验证问题之后,输入的号码就是 3333。那么也许这是您的问题?不确定,因为您正在谈论圆点

关于grails - Grails-Inputfields显示一个十进制数字的点('.'而不是(','),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42038687/

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