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