我有一个 Grails 应用程序,我想保存一个带小数位的数字,例如902.11
. 在我的应用程序中,我使用捷克语言环境,因此小数点表示为逗号“,”而不是点“.”。但是在浏览器中我想通过Javascript做一些计算,所以小数点必须用“.”表示。
是否有解决方案,以便我可以在我的应用程序中自定义捷克语区域设置,以便使用“。” 代替 ”,”?或者有没有其他解决这个问题的方法?
您应该使用formatNumber标记并指定使用点作为小数位的语言环境,例如
<script ...>
var someNumber = <g:formatNumber number="${myNumber}" locale="en" />;
// ... do some javascript calculations
</script>
以供参考:
formatNumber 将在您将值写入页面时起作用,但 Lojza 可能希望将数字返回给控制器,这并不简单,因为 Grails 数据绑定器是特定于语言环境的,因此它会期望根据捷克语语言环境而不是基本的 JS 格式。
您可以覆盖对您的应用程序来说是全局的绑定值转换器(可能不是您想要的),或者使用命令对象并将数值检索到命令对象的字符串属性中,这样 Grails 就不会尝试应用任何数字解析就可以了。然后根据基本的 JS 格式手动将此字符串转换为数字。