データの丸めはどこで行うか

たとえばServlet+JSPの開発だとして、数値の丸めなどはどこで行うのが正しいのだろうか。

ここで言う丸目めとは、DBに保存されている小数桁が5桁でも、画面には3桁しか表示しない、などという場合だ。つまり、DB上は1.50001でも画面上は1.500で表示したい、と言うようなケースだ。

わたしは表示有効桁が何桁かどうかというのは表示に関わる部分なので、JSP上で丸めるのが良いと思っている。(JSPに直接ロジックは書きたくないので、別クラスやタグにはする。)

しかし、今までこのテの問題が出たときは、たいてい、Servlet側(ビジネスロジック)で丸めて、JSPではその値を出すだけが良い、と言う意見が大半だった。同じように、3桁でカンマ区切りするのも、わたしはJSPだが、他の人はみな、Servlet側(ビジネスロジック)だと言うのだ。

これは見た目だけの問題で、表示しきれない値を丸めるのはあくまで表示側の都合だけなので、表示をつかさどるJSPにその処理が入るべきなきがしているのである。ビジネスロジックは何桁見せる、とか、見栄えのカンマ区切りを設定する、などという処理を行うべきでは無い気がするのだが、どうなのだろうか。

ああ、あと以前大手SIのSEとエラーの文字色はどこで設定するか、というので、もめたっけ。その時も私一人が、色定義を持つのはJSPでエラーかどうかの状態だけをServlet側でセットすべき、と言っていたが、認められなかった経験がある。つまり、Servlet側で

  • setError(true);
  • setColor("RED");

こんな感じで、Servlet側で設定するのが正しいと言うのだ。いまだに納得できないが、これが正しい考え方なのだろうか。