【发布时间】:2019-11-28 02:58:07
【问题描述】:
在 Groovy/Grails 2.0 中,我有一个带有 Float 变量的域(例如 Float weight = 25.28)。当 Grails 生成带有相应数字输入字段的表单时,验证会抱怨 25.28 值并且只会接受一个 int 值。有人可以说明这是怎么回事吗? 提前致谢。
编辑: 在 Gails 域对象中(为了论证,Double 和 BigDecimal):
Double weight = 350.26;
BigDecimal width = 86.1;
生成的html:
<input id="weight" type="number" value="350.26" required="" name="weight">
<input id="width" type="number" value="86.1" required="" name="width">
... 我们的 FF 7 对这些数值很好,Chrome 给了我“无效值”并且只接受整数。 知道我缺少什么吗?
【问题讨论】:
-
您是否已经尝试在 HTML 中用逗号替换小数点分隔符?
-
正如@MarijnBouma 建议的那样,某些语言环境在解析时使用逗号代替小数点(因为 html 输入值作为字符串提交),可能需要仔细检查。跨度>
-
@vector:你最后在这里做了什么?你是如何解决这个问题的?我在使用 BigDecimal 时遇到了类似的问题,即使我在域类的约束闭包中设置了适当的比例和最小/最大值并重新生成 gsps,我也无法让编辑表单接受十进制值。
-
jlpp... 最终设置了步长值,如 step="0.001" 或 step="1" 等。
-
@vector:我会把它放到下一个“我”的答案中?