手入力された値を0.5区切りに変換するプログラム
を作成しています。
0.1~0.4 を入力 → 0.0 を返す
0.5~0.9 を入力 → 0.5 を返す という感じです。
public static void main(String argv[]){
Double D = new Double(argv[0]);
double d = D.doubleValue() * 2;
int i = (int)d;
double i_d = i;
double d_value = i_d / 2;
Double D_value = new Double(d_value);
String s_str = D_value.toString();
System.out.println(s_str);
}
で希望する値(String型)は返ってくるのですが・・・
(NumberFormatExceptionは無視します。)
すごい無駄の多いプログラムに思えて仕方ありません。
超初心者プログラムであること重々承知ですが、もっと短くなりませんか?
環境:JDK1.4 です。
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の環境がないので、
上記のソースで動くかどうかはわかりません。
どうしても floorのところでエラーになります。
たぶん私の理解不足なんですね・・・
ちょっと便利そうなので使いたいと思います。
結局、同じようなプログラムを
必要箇所全てにつけるのが面倒だというところから
派生しているんですが・・・
0.5区切りに切る専用のJavaBeanを作成し、
それを使用することにします。
ありがとうございました。
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は知らないんですがこれでどうです?
ありがとうございました。
Double, double は別物(?)であるため
キャストエラーが一杯でますね。。
参考にしつつ手を加えて書き直してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 単振り子とルンゲ・タック法 1 2022/07/15 00:05
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実数からの小数部の取得
-
Javaによる利率計算の実装方法
-
0dの意味を教えてください
-
自然対数の底Eを含むStringの数...
-
このプログラムを直してください。
-
double型変数値の整数部分のみ...
-
べき乗
-
System.out.printlnの出力先
-
1~100までの数字を表示し、か...
-
変数を動的に利用するには?
-
カタカナの小文字を大文字に変...
-
JavaのswingでCardLayoutの画面...
-
C#の質問
-
Path型をString型へ変換する(Java)
-
変数を動的に作るには?
-
動的配列が存在(要素が有る)か...
-
csv出力について
-
Visual Basic でのコードをASCI...
-
C言語のポインターに関する警告
-
getStringの値がNULLの時の処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0dの意味を教えてください
-
実数からの小数部の取得
-
Javaで何パーセント%かを表示...
-
べき乗
-
double型変数値の整数部分のみ...
-
最大値と最小値の求め方
-
Math.sin() を使った計算が合わ...
-
java のfor文について質問です。
-
Java 7日後までの天気を予測する
-
Javaのeval関数処理
-
Javaで計算
-
javaでのプログラミング
-
このプログラムを直してください。
-
doubleとintの違い
-
JAVAのプログラムで、2乗計算...
-
99.98+0.01の誤差
-
double型の足し算について
-
Double.parseDoubleの使い方
-
掛け算演算を使わない掛け算
-
分を表す数値(int型)を、小数...
おすすめ情報