Socially incompatible person

プログラミングは全く初めてのド素人どこまでやれるか挑戦します。

JAVAに挑戦 (入門書も全て正の情報ではない)

昨日はメインの課題が全く進まず
ただダラダラとやっても効率が上がらないので
入門書を読みながら記載されているおさらい部分の
コードを手入力し実行しました。


乱数を発生させるメソッドを使用するものでしたが
100未満の乱数を発生させるためには
修正前
double d = Math.random();
int i = (int) (d*100);
System.out.println(i);
と記載されていたのでコード入力して実行しましたが
1~100の間で乱数表示を想定しているのでしょうが
結果は0でしか表示されませんでした。


なんでやともう一度見直しすると


下記1行目のdoubleの2か所はintで表記されているが
それでは正数の扱いとなる為実行時に0(少数点以下は切り捨てされる為)
で表記されてしまうので


double i = (double) (d*100);
System.out.println(i);
に修正し1~100の間で結果表示されるようになりました。


今までは教科書に載っていることは全部正解と思っていましたが
違う場合もあるのですね。


ひとつ勉強になりました。