- ベストアンサー
手入力された値を0.5区切りに変換するプログラム
- 手入力された値を0.5区切りに変換するプログラムを作成しています。
- 0.1~0.4 を入力すると 0.0 を返し、0.5~0.9 を入力すると 0.5 を返します。
- 環境はJDK1.4です。超初心者プログラムであることを承知していますが、もっと短くする方法はありますか?
- みんなの回答 (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の環境がないので、 上記のソースで動くかどうかはわかりません。
その他の回答 (1)
- madman
- ベストアンサー率24% (612/2465)
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は知らないんですがこれでどうです?
お礼
ありがとうございました。 Double, double は別物(?)であるため キャストエラーが一杯でますね。。 参考にしつつ手を加えて書き直してみます。
お礼
どうしても floorのところでエラーになります。 たぶん私の理解不足なんですね・・・ ちょっと便利そうなので使いたいと思います。 結局、同じようなプログラムを 必要箇所全てにつけるのが面倒だというところから 派生しているんですが・・・ 0.5区切りに切る専用のJavaBeanを作成し、 それを使用することにします。 ありがとうございました。