我想在 gsp 中操作浮点数,这就是我想要的:
如果数字有 1.*,我希望它显示点,但如果它以零结尾,我不希望它显示点和零。
像这样:
得分:1.5
得分:1
得分:2.1
得分:3
score 变量是一个浮点数,它是 gsp 上加载数字的输入字段,可以更改。
但真正的问题是,我如何查看数字是否有小数?
已经有一个用于格式化数字的标记库:(g:formatNumber)
我认为这样的事情应该有效:
<g:formatNumber number="${score}" type="number" format="###.##"/>
但是……如果这不起作用……
我想说写你自己的自定义标签库。如果它会被多次使用,为什么要遍历控制器中的对象列表,将浮点数更改为字符串以显示它?让页面决定如何在适当的上下文中显示它。
或者
向域对象 (String scoreDisplay) 添加一个瞬态字段,然后让 getScoreDisplay() 将 score 的值作为字符串返回,并按照您想要的格式进行格式化。
好吧,我建议您在控制器中格式化数字 - 在它到达您的 gsp 之前。这样您就可以更好地控制数字格式。进入 gsp 后,您必须使用 grails 的十进制数字格式或制作自己的 taglib来格式化(因为您的情况下小数位数会发生变化)。