JSPから下記のクラスファイルを呼び出し、戻り値を返すように作りたいのですがうまくいきません。
1.Math.floor(Math.random()*100)-50
上記で実行しても小数点以下がでてしまいます。
出ないようにするのは無理なのでしょうか?
2.乱数はdouble型以外だめなのでしょうか?
コンパイルするとdouble型なので間接参照できません。というようなエラーが出てしまいます。
これは結果を文字型に変更して戻り値として返したいのですができません。
どうすれば理想どおりにできるようになりますか?
public String getR(){
double rnd = Math.floor(Math.random()*100)-50;
if(rnd.length = 4){
rnd = rnd.substring(0,2) ;
}
else{
rnd = rnd.substring(0,3) ;
}
_R = rmd;
return _R;
}
No.3ベストアンサー
- 回答日時:
#1の補足にで書かれていたコードを、少しいじってみたのですが、
以下のような形で目的通りにはなりませんでしょうか?
(-50~50の整数が、String型に変換されて戻るはずだと思います。)
間接参照できませんというのは、
「if(rnd.length = 4)」で発生したのではないかと思いました。
私はJSPは使わないので、自信はありません。
public String getR(){
String _R;
int max = 50 ;
int min = -50 ;
int rnd = (int)((Math.random() * (max - min + 1)) + min) ;
_R = Integer.toString(rnd);
if(_R.length() == 4){
_R = _R.substring(0,2);
}
return _R;
}
こんにちは。
できました!!
ありがとうございます。
_R に先に代入してそれを使うようにすればいいんですね。
また、それによってランダム変数の(int)が効くようになり小数点以下が出ないようになりました。
これはJSPではなくjavaのクラスファイルなのですがJSPからこれを呼び出したかったのです。
ほんとにありがとうございました。
No.2
- 回答日時:
Math.random()は0~1の間の値を返します。
開発者は自分のほしい範囲にするために定数をかけて
実際のランダム値として使用します。
例:0~100までのランダムだと100をかける。
doubleで帰ってくるのは開発者が求めるランダム値の
範囲がわからないため汎用的にするためdoubleに
なっていると思います。
(小数点以下がいらない場合は切り捨ててしまえば
上位の桁だけでも数が大きければ範囲内での
ランダム値となります)
この回答への補足
ありがとうございます。
私も小数点以下を切り捨てればいいと思い、(int)やMath.floorを使ってもみましたがだめでした。
No.1
- 回答日時:
今、手元にJDKをインストールしたPCがないので試してないですが、
1.
rndがdoubleなので、単にintでキャストしてやれば良いのでは?
2.キャストしたintをIntegerクラスに入れてやって、toString()で良いような。
細かいJavaの文法はイマイチ覚えていないのであやふやですが、多分いけると思います。
(手元にJava API JavaDocを置いておくべきですね。(^^;)
この回答への補足
ありがとうございます。
下記のようにしてやってみましたが、コンパイルの時点でint型は間接参照できませんとなってしまいました。
public String getR(){
int max = 50 ;
int min = -50 ;
int rnd = (int)((Math.random() * (max - min + 1)) + min) ;
if(rnd.length = 4){
rnd = rnd.substring(0,2);
_R = rnd.toString();
}
else{
_R = rnd.substring(0,3);
_R = rnd.toString();
}
_R = "+" + _R ;
return _R;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaコンパイルエラー
-
0dの意味を教えてください
-
double型の足し算について
-
Javaで何パーセント%かを表示...
-
実数からの小数部の取得
-
べき乗
-
ダブルクォーテーションのrepla...
-
IF関数でEmpty値を設定する方法。
-
ORA-01858: 数値を指定する箇所...
-
ダブルクォーテーションを含む...
-
JSPやサーブレットでSystem.out...
-
Path型をString型へ変換する(Java)
-
java.util.Comparatorのcompare...
-
java 一意の値を取り出す方法
-
java.util.Dateについて
-
並行サーバの導入
-
System.out.printlnの出力先
-
変数を動的に作るには?
-
javaで質問です。 文字列2023/2...
-
,で句切って部分一致をファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実数からの小数部の取得
-
0dの意味を教えてください
-
べき乗
-
Javaで何パーセント%かを表示...
-
JAVAのプログラムで、2乗計算...
-
分を表す数値(int型)を、小数...
-
double型変数値の整数部分のみ...
-
javaの課題。。
-
javaで1.8x10の308乗÷...
-
少数50桁以上を表示するには
-
double型の足し算について
-
Javaコンパイルエラー
-
doubleについて
-
最大値を求めるプログラム
-
手入力された値を0.5区切りに変...
-
最大値と最小値の求め方
-
数値積分について
-
javaでC++のdefine文に相当する...
-
Javaのeval関数処理
-
四捨五入をするメソッドを実装...
おすすめ情報