光の進む早さを30万㌔として、光が一日に進む距離の計算
public class Q31 {
public static void main(String[] args){
//正解
System.out.println("光が一日にすすむ距離は" + (24 * 60 * 60 * 300000L) + "kmです。");
System.out.println("光が一日にすすむ距離は" + (long)24 * 60 * 60 * 30000 + "kmです。");
System.out.println("光が一日にすすむ距離は" + (300000.0 * 60 * 60 * 24) + "kmです。");
System.out.println("光が一日にすすむ距離は" + (double)300000 * 60 * 60 * 24 + "kmです。");
//誤り
System.out.println("光が一日にすすむ距離は" + (24 * 60 * 60 * 300000) + "kmです。");
}
}
上から
光が一日にすすむ距離は25920000000kmです。
光が一日にすすむ距離は2592000000kmです。
光が一日にすすむ距離は2.592E10kmです。
光が一日にすすむ距離は2.592E10kmです。
光が一日にすすむ距離は150196224kmです。
と表示される。
------------------------------------
計算にもいろいろやり方がある。
★30万㌔メートルはオーバフローを起こすのでlong型の定数かdouble型をつけてあげる。
以下は、どちらも同じ書き方の違い。
◯long型
System.out.println("光が一日にすすむ距離は" + (24 * 60 * 60 * 300000L) + "kmです。");
System.out.println("光が一日にすすむ距離は" + (long)24 * 60 * 60 * 30000 + "kmです。");
◯double型
System.out.println("光が一日にすすむ距離は" + (300000.0 * 60 * 60 * 24) + "kmです。");
System.out.println("光が一日にすすむ距離は" + (double)300000 * 60 * 60 * 24 + "kmです。");
なんにも型指定しないと誤った数値が表示される
System.out.println("光が一日にすすむ距離は" + (24 * 60 * 60 * 300000) + "kmです。");
0 件のコメント:
コメントを投稿