0

我想在 gsp 中操作浮点数,这就是我想要的:

如果数字有 1.*,我希望它显示点,但如果它以零结尾,我不希望它显示点和零。

像这样:

得分:1.5

得分:1

得分:2.1

得分:3

score 变量是一个浮点数,它是 gsp 上加载数字的输入字段,可以更改。

但真正的问题是,我如何查看数字是否有小数?

4

2 回答 2

2

已经有一个用于格式化数字的标记库:(g:formatNumber)

我认为这样的事情应该有效:

<g:formatNumber number="${score}" type="number" format="###.##"/>

但是……如果这不起作用……

我想说写你自己的自定义标签库。如果它会被多次使用,为什么要遍历控制器中的对象列表,将浮点数更改为字符串以显示它?让页面决定如何在适当的上下文中显示它。

或者

向域对象 (String scoreDisplay) 添加一个瞬态字段,然后让 getScoreDisplay() 将 score 的值作为字符串返回,并按照您想要的格式进行格式化。

于 2012-08-09T15:29:24.090 回答
1

好吧,我建议您在控制器中格式化数字 - 在它到达您的 gsp 之前。这样您就可以更好地控制数字格式。进入 gsp 后,您必须使用 grails 的十进制数字格式或制作自己的 taglib来格式化(因为您的情况下小数位数会发生变化)。

于 2012-08-09T13:57:27.360 回答