• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:手入力された値を0.5区切りに変換する)

手入力された値を0.5区切りに変換するプログラム

このQ&Aのポイント
  • 手入力された値を0.5区切りに変換するプログラムを作成しています。
  • 0.1~0.4 を入力すると 0.0 を返し、0.5~0.9 を入力すると 0.5 を返します。
  • 環境はJDK1.4です。超初心者プログラムであることを承知していますが、もっと短くする方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • wogota
  • ベストアンサー率42% (66/154)
回答No.2

public static void main( String argv[]){  Double D = new Double( argv[0]);  double d = floor( D.doubleValue() * 2)/ 2;  Double D_value = new Double( d);  String s_str = D_value.toString();  System.out.println( s_str); } java.lang.mathクラスの中には、その値を超えない最大の整数に 等しいdouble値を返すメソッドfloor() がありますので、それを 利用することになるでしょうか。今手元にjavaの環境がないので、 上記のソースで動くかどうかはわかりません。

ssm3u
質問者

お礼

どうしても floorのところでエラーになります。 たぶん私の理解不足なんですね・・・ ちょっと便利そうなので使いたいと思います。 結局、同じようなプログラムを 必要箇所全てにつけるのが面倒だというところから 派生しているんですが・・・ 0.5区切りに切る専用のJavaBeanを作成し、 それを使用することにします。 ありがとうございました。

その他の回答 (1)

  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

public static void main(String argv[]){  Double D = new Double(argv[0]);  D = (double)((int)(D / 0.5)) / 2.0;  String s_str = D.toString();  System.out.println(s_str); } もしくは public static void main(String argv[]){  Double D = new Double(argv[0]);  D = (D<0.5? 0.0:.05);  String s_str = D.toString();  System.out.println(s_str); } どっちも検証してませんが、と言うかJAVAは知らないんですがこれでどうです?

ssm3u
質問者

お礼

ありがとうございました。 Double, double は別物(?)であるため キャストエラーが一杯でますね。。 参考にしつつ手を加えて書き直してみます。

関連するQ&A