
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
double型変数値の整数部分のみ...
-
実数からの小数部の取得
-
プログラムのおかしいところを...
-
Java math.powメソッド
-
JSPやサーブレットでSystem.out...
-
System.err. printlnとSystem.o...
-
IF関数でEmpty値を設定する方法。
-
オブジェクトの中のプロパティ...
-
javaです。 途中まで出来ている...
-
動的配列が存在(要素が有る)か...
-
C言語のポインターに関する警告
-
StrutsでJSPからListを受け取り...
-
この警告はどうすれば?
-
System.out.printlnの出力先
-
変数を動的に作るには?
-
JSPでImportエラーになります
-
<forEach> 内で供給された "ite...
-
javascriptで文字列のsjis利用...
-
ループ処理の際、最後だけ","を...
-
Log4jで機能毎に別ファイルへ出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実数からの小数部の取得
-
double型変数値の整数部分のみ...
-
0dの意味を教えてください
-
Javaで何パーセント%かを表示...
-
最大値と最小値の求め方
-
newton法のjacobi
-
プログラマーの達人という本の...
-
先に計算したほうがいいのでし...
-
べき乗
-
Javaによる利率計算の実装方法
-
java のfor文について質問です。
-
乱数について
-
x^2+y^2<n^2
-
LU分解を利用した逆行列のプロ...
-
分を表す数値(int型)を、小数...
-
プログラムで指数関数を求めよ...
-
double型の足し算について
-
Javaコンパイルエラー
-
掛け算演算を使わない掛け算
-
乱数のdouble型について
おすすめ情報