0

gspで浮動小数点数を操作したいのですが、ここに私が欲しいものがあります:

数値に 1.* がある場合はドットを表示したいのですが、ゼロで終わる場合はドットとゼロを表示したくありません。

このような:

スコア: 1.5

スコア: 1

スコア: 2.1

スコア: 3

スコア変数は浮動小数点数であり、数値をロードする gsp の入力フィールドであり、変更することができます。

しかし、本当の問題は、数値に小数があるかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

2

数値をフォーマットするための taglib が既にあります: (g:formatNumber)

私はこのようなものがうまくいくはずだと思います:

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

でも・・・それが無理なら・・・

独自のカスタム taglib を作成します。それが複数回使用されるものである場合、コントローラー内のオブジェクトのリストをループして、表示するためだけにフロートを文字列に変更するのはなぜですか? 適切なコンテキストで表示する方法をページに決定させます。

または

一時的なフィールドをドメイン オブジェクト (String scoreDisplay) に追加してから、getScoreDisplay() がスコアの値を文字列として返し、必要に応じてフォーマットします。

于 2012-08-09T15:29:24.090 に答える
1

ええと、コントローラーで数値をフォーマットすることをお勧めします-それがgspに到達する前に。そうすれば、数値形式をより細かく制御できます。gsp に入ったら、grails の 10 進数形式を使用するか、独自の taglibを作成して形式を設定する必要があります (小数部の桁数がケースによって変わるため)。

于 2012-08-09T13:57:27.360 に答える